Я хочу, чтобы XSS с нашим кодом, проблема в том, что это может потребовать как JS, так и html-экранирование и может быть немного сложным.Проблема с сценарием на кросс-сайтах
В следующем примере кода похож на наш код
<script>
var CURRENT_VALUE = '<img src=1 onerror=alert(1)>';
document.getElementById("valueBox").innerHTML = CURRENT_VALUE;
</script>
давайте предположим, что CURRENT_VALUE вставляется динамически. Итак, что мне делать в этом случае, я знаю, что простая HTML-кодировка может не работать, так как злоумышленник может передать экранированное значение unicode, и он может быть сброшен в документ, когда парсер JS очистит его.
Так что это правильный путь,
Если я первым сделать JS побега и перед document.getElementById сделать HTML вытекающее? Как это будет работать?
Предполагая CURRENT_VALUE это сказать шестнадцатеричном и содержит/x027img ... и так далее
Я не вижу, как это может быть XSS родственный Preve (?) nting XSS больше касается дезинфекции содержимого входных серверов. Вышеуказанный скрывает , если вы нажмете «просмотреть исходный код», но это не мешает вставлять код зла в поле ввода или текстовое поле. – davidkonrad
Я бы подумал, что любая клиентская сторона была довольно бесполезной, когда дело доходит до безопасности. Вы должны предположить, что его можно манипулировать и иметь дело с проверкой правильных/ожидаемых значений на стороне сервера. –
Можно использовать экранирование JS на стороне сервера, но если мне нужно также использовать экранирование HTML на стороне сервера, тогда мне нужно сделать это в первом порядке экранирования html, следуя экранированию JS, поскольку html интерпретируется последним, но может возникнуть проблема при интерпретации в контексте, отличном от html, следовательно, мне может потребоваться экранирование JS на стороне сервера, за которым следует javascript на стороне клиента, но я не уверен в этом. – Kalyan