Я использую div contentEditable, который позволяет пользователям редактировать основной HTML-код, а затем размещать его непосредственно на сайте с помощью запроса AJAX. Естественно, мне нужно проверить его безопасность. Самым очевидным было обеспечение того, чтобы теги сценария не были отправлены путем поиска <script
в отправленном HTML. Это делается после первого запуска htmlentities
, передачи данных на другой сервер и последующего запуска html_entity_decode
. Кроме того, каждый открываемый тег должен быть закрыт, и каждый закрываемый тег должен быть открыт в HTML, отправленном пользователем.
Не обращая внимания на несвязанные риски безопасности (например, SQL-инъекцию) и риски, не связанные с безопасностью (например, когда пользователь публикует несоответствующее изображение), каковы другие угрозы безопасности, если таковые имеются, конкретно связанные с разрешением пользователю добавлять HTML прямо на страницу?
Чтобы быть более конкретным,
- Есть ли способы разместить скрипты на странице без явного использования тега скрипта, ИЛИ
- Есть ли способы поставить под угрозу безопасность сайта или его пользователей путем редактирования HTML без использования скриптов?