предотвратить xss, но разрешить все теги html - PullRequest
0 голосов
/ 22 марта 2012

Я создаю блог, и в настоящее время я заканчиваю админ-панель.

Так как я буду в основном управлять этим ... я хочу убедиться, что когда я наберу

<ul>
   <li>test</li>
   <li>test</li>
</ul>

покажет мне неупорядоченный список, но также предотвратит теги XSS на всякий случай ...

как я могу это сделать?

Может ли решение создать функции и заменить теги ul, ol, img и т. Д ...?

Ответы [ 3 ]

1 голос
/ 22 марта 2012

Стандартный способ работы с XSS при разрешении HTML заключается в следующем:

  1. запустить HTML через (настоящий) HTML-парсер
  2. удалить любой элемент или атрибут, которого нет в белом списке (используйте сторонний белый список в качестве отправной точки, изучите любые дополнительные элементы / атрибуты, которые вы добавляете, чтобы убедиться, что у них нет средств для внедрения JS, которые вы не знаю о).
  3. проверка работоспособности любых URI
  4. генерирует чистый HTML из DOM

Особенности будут зависеть от языка, который вы используете.

1 голос
/ 22 марта 2012

То, что вы ищете, является дезинфицирующим средством HTML.Их очень сложно написать правильно, поэтому вы должны взглянуть на существующую библиотеку.Для PHP взгляните на HTML Purifier .

Надлежащая защита XSS включает в себя не только очистку HTML.Проект Open Web Application Security Project (OWASP) составил каноническое руководство по предотвращению атак XSS:

Шпаргалка по предотвращению межсайтовых сценариев

1 голос
/ 22 марта 2012
...