Мой javascript считывает данные из строки запроса и помещает эти данные в текстовое поле, используя jQuery.val()
.Javascript/jQuery XSS потенциальное чтение из строк запроса
Это прекрасно работает, но мне интересно, безопасен ли он от атак XSS?
Say строка запроса выглядел как ...
site.com?q="javascript:alert(document.cookie)
Что бы эффективно сделать:
jQuery.val('"javascript:alert(document.cookie)')
Из того, что я испытал в IE8/Firefox это устанавливает значение входного как видно, и не делает фактической инъекции.
Если я запускаю эту функцию над строкой первой:
function htmlEncode(str) {
return str.replace(/</g, '<').replace(/>/g, '>').replace(/'/g, ''').replace(/"/g, '"');
}
Тогда вы буквально видеть "javascript:alert(document.cookie)
в значении входного сигнала, который не то, что я хочу.
Использование jQuery 1.5.2 Я думаю, мой вопрос: jQuery.val()
обрабатывает объекты HTML для вас и поэтому считается безопасным?
@fire - После публикации ответа выше, я подумал о чем-то другом, что вы можете найти полезным.Хотя вы уже приняли мой первоначальный ответ, я решил опубликовать дополнительный материал в любом случае, потому что я думаю, что он может ответить на более глубокий вопрос, который лежит в основе того, что вы просили. Удачи в том, чтобы держать хакеров в страхе! –