Я хотел бы, чтобы пользователи могли оставлять расширенные текстовые комментарии, возможно, используя уценку. Я установил библиотеки, используемые на Reddit, но обеспокоен атакой с внедрением javascript, которая произошла в прошлом году, тем более что я до сих пор не знаю, как именно была осуществлена атака. Должен ли я по-прежнему беспокоиться о безопасности комментариев? Есть ли тестовая строка, которую я могу запустить в своей системе, чтобы проверить наличие тех же недостатков, которые привели к краху Reddit?
Безопасная библиотека Python Markdown [закрыта]
Ответы (3)
Reddit теперь использует библиотеку скидок.
Python-Markdown — более или менее «стандартный» — имеет «безопасный функция режима, экранирующая html-теги. Этого должно быть достаточно, чтобы противостоять большинству атак HTML-инъекций.
В других ответах упоминается безопасный режим Python-Markdown, но теперь он устарел. Авторы Python-Markdown были процитированы, говоря:
«безопасный режим» был неудачным выбором имени, которое мы продолжаем использовать для обратной сопоставимости (старый код все еще работает с нашими более новыми версиями). На самом деле это режим без разметки. Другими словами, это всего лишь способ запретить необработанный HTML-код, который на самом деле не гарантирует безопасность.
Теперь они рекомендуют использовать дезинфицирующее средство HTML, такое как Bleach, для очистки вывода Markdown. mdx_bleach — это расширение Python-Markdown, которое делает именно это. Отказ от ответственности: я являюсь автором этого расширения.
Поскольку он использует html5lib для анализа фрагментов документов так же, как это делают браузеры, Bleach чрезвычайно устойчив к неизвестным атакам, гораздо более устойчивым, чем дезинфицирующие средства на основе регулярных выражений.