Использование HTML Purifier для остановки ссылок на собственный сайт
-
18-09-2019 - |
Вопрос
Я использовал Очиститель HTML чтобы отсеять любые подозрительные материалы, поступающие из моего общедоступного редактора WYSIWYG.Входящий HTML-код также отображается в общедоступной части веб-сайта.
У меня разрешены ссылки, и я также автоматически связываю URL-адреса в виде обычного текста (используя очиститель).
Есть ли способ разрешить внешние ссылки, но запретить ссылки на тот же домен?Например, мой домен - это www.example.com
http://www.google.com будут связаны.
http://www.example.com/logout/ не будут связаны.
Я стремлюсь свести к минимуму любое вмешательство со стороны злоумышленников.Должен ли я просто связать свой выход из системы с действием формы с парой POST ключ / значение, чтобы этого не происходило?
Спасибо
Решение
Ваша форма входа / выхода всегда должна быть доступна только для публикации.
Не беспокойтесь о значении проверки, но это довольно важная проблема безопасности - любые транзакции, которые изменяют состояние веб-сервера, должны быть запросами POST.Вы НИКОГДА не должны позволять http://example.com/object?action=delete, или любой его вариант.PHP поощряет плохую практику в этом вопросе, но вы ВСЕГДА должны использовать тот или иной вариант и НИКОГДА НЕ разрешать оба.
Если ваши пользователи могут записывать формы в ваш редактор WYSIWYG, у вас гораздо большие проблемы, чем это.
Чтобы ответить на ваш первоначальный вопрос, чтобы отключить внутренние ссылки, используйте URI.HostBlacklist
и обязательно установите URI.MakeAbsolute
:
http://htmlpurifier.org/live/configdoc/plain.html#URI.HostBlacklist