Проверка, является ли строка Javascript HTML-кодом

0

У меня есть текстовое поле и кнопка отправки, в которой размещается контент и ответ на HTML-страницу. Есть ли какой-либо способ (кроме проверки, если строковая подстрока в начале

    <h1>,<h2>,<h3>...,<script>,<style>,etc.

чтобы увидеть, будет ли строка форматироваться по-разному, когда она будет размещена на странице, чтобы предотвратить инъекцию кода?

благодаря

-Zach

  • 1
    Вы не должны делать эту проверку в браузере, но на сервере, где вы можете убедиться, что клиент не взломает отправку
  • 0
    Может быть, этот ответ поможет вам: stackoverflow.com/a/942032/772020
Показать ещё 1 комментарий
Теги:
code-injection

1 ответ

1
Лучший ответ

Когда вы показываете пользовательские данные, вы должны правильно закодировать его как html. В javascript используйте document.createTextNode(userData) и добавьте этот узел вместо использования innerHTML. В PHP используйте htmlentities.

Если пользователю разрешено использовать любой html или форматирование, вы должны сделать их со строгим списком разрешенных тегов и атрибутов и закодировать все остальное как обычный текст.

Таким образом, даже если пользователь ввел <h1>stuff</h1>, когда он правильно закодирован, он выйдет как &lt;h1&gt;test&lt;/h1&gt; вместо html, который не будет уязвим для javascript-инъекции.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню