Cross Site Scripting (XSS): Нужно ли мне избегать амперсанда?
Я хочу сбежать для XSS в html-контексте, и до сих пор я обрабатываю символы <, > и ".
По-видимому, рекомендуется избегать амперсанда, но почему? (За исключением того, что для сохранения html допустимо, допустим, что это не проблема)
Так что я спрашиваю:
Когда я убегу <, > и ", может ли кто-нибудь продемонстрировать, как амперсанд может позволить XSS-атаку в контексте html?
Ура!
Ответы
Ответ 1
Вы действительно должны взглянуть на листинг Chevrolet OWASP XSS.
Вы должны убежать и потому, что его можно использовать для обхода других защит. Рассмотрим этот код:
<button onclick="confirm('Do you really want to delete <%= data_from_user; %> ?'">Delete</button>
Чтобы защититься от XSS внутри обработчика события onclick, разработчик ускоряет "," и "&" в data_from_user и думает, что все в порядке. Проблема заключается в том, что если злоумышленник набирает '
, который передает экранирование, но заканчивается позволяя злоумышленнику запускать javascript.
Пример здесь: http://erlend.oftedal.no/blog/?blogid=124
Ответ 2
вы используете и объединяете параметры в URL-адресе:
Отраженный XXS:
Script код вводится в URL-адрес, который веб-страница отражает жертвам
http://mybank.com/page?message= < script src= "evil _script.js" /" >