XSS и html - безопасно?
Скажите пожалуйста безопасно ли использовать такую конструкцию?
Такой url вроде как проглатывается и alert не вылетает. /?test=<script>alert('ALARM');</script>text Код:
window.onload = function() { <span id="test"></span> На странице я вижу: <span id="test">%3Cscript%3Ealert(%27ALARM%27);%3C/script%3E!</span> |
dima85,
зачем выводить на страницу параметры поиска? |
Меня просто сам факт интересует. Безопасно ли это. Если нет, то каким образом можно вывести alert на страницу и как обезопаситься.
|
Цитата:
|
То есть если у меня простая html страничка, без всяких php запросов и скриптов. Такой js код безопасен?
Цитата:
|
dima85,
надо алерт выполнить? |
@Rasy, надо, пытаюсь разобраться в XSS атаках. :)
|
Цитата:
|
Ну а coockie слить например? Есть ведь и другие страницы на сервере.
Мы уходим от вопроса. Как вывести alert на страницу, возможно ли это? |
Цитата:
//это опасно echo "<script>alert('ALARM');</script>"; //это безопасно echo htmlspecialchars("<script>alert('ALARM');</script>"); Ваш код вреда не принесет, но он и бесполезен на все 100. |
Немного отойду от темы, вот есть rettyPhoto Plugin - это JS галерея.
И вот пишут, мол она не безопасна. https://packetstormsecurity.com/file...Scripting.html Если сформировать url: /#!%22%3E%3Cimg%20src=1%20onerror=prompt%280%29;%3E// мы на страницу можем вставить вредный код. Нужно сделать вот такой фикс: hashIndex = parseInt(hashIndex); hashRel = hashRel.replace(/([ #;&,.+*~\':"!^$[\]()=>|\/])/g,'\\$1'); А почему на свою страницу, которая тупо смотрит URL и показывает его в HTML я не могу вывести вредный код? |
Цитата:
|
Цитата:
var ex = 'alert(%27ALARM%27);'; eval(decodeURI(ex)); |
Насколько я понял проблема rettyPhoto Plugin в том что они используют decodeURI
Если я у себя сделаю вот так, из плюсов будет правильно отображаться русские символы. Но из минусов я смогу добавлять вредный код. window.onload = function() { $("#test").html(decodeURI(window.location.search)); } Вопрос, есть какой-то еще способ безопасно в читаемом виде выводить русские символы с url? |
Цитата:
|
Скрипты (<script>) при добавлении через innerHTML не срабатывают. А вот через jQuery сработает, так как там метод "html" не через innerHTML вставляет данные. Для безопасной вставки достаточно использовать метод "text" (или свойство textContent в нативном JS).
|
Часовой пояс GMT +3, время: 22:03. |