Направляющие - Выход из HTML с помощью h () И, исключая определенные теги

Лучшее решение, которое я нашел, должен переместить границу в переносящийся элемент, как это:

<div class='submit_button'><input type="submit" class="button"></div>

С этим CSS:

.submit_button         { width: 150px; border: 1px solid #ccc; }
.submit_button .button { width: 150px; border: none; }

основная проблема с этим решением состоит в том, что кнопка теперь является элементом блока и должна быть фиксированной шириной. Мы могли использовать встроенный блок, за исключением того, что Firefox2 не поддерживает его.

Любые лучшие решения приветствуются.

5
задан Ryan Bigg 10 October 2009 в 02:12
поделиться

5 ответов

На самом деле исключение определенных тегов - довольно сложная проблема. В частности, тег script может быть вставлен очень разными способами - обнаружить их все очень сложно.

Если это вообще возможно, не применяйте это самостоятельно.

3
ответ дан 14 December 2019 в 04:43
поделиться

Используйте плагин белого списка или его модифицированную версию. Это супер! Вы также можете посмотреть Sanitize (похоже, лучше, но никогда не пробовал).

2
ответ дан 14 December 2019 в 04:43
поделиться

Рассматривали ли вы возможность использования RedCloth или BlueCloth вместо фактического разрешения HTML? Эти методы предоставляют довольно много опций форматирования и управляют синтаксическим анализом.

Редактировать 1: Я обнаружил это сообщение , просматривая, как удалить HTML с помощью RedCloth, может быть полезно . Кроме того, эта страница показывает, как версия 2.0.5 позволяет удалять HTML. Кажется, не удается найти более новую информацию, но сообщение на форуме обнаружило уязвимость. Надеюсь, это было исправлено, так как это было с 2006 года, но я не могу найти руководство или документацию RedCloth ...

2
ответ дан 14 December 2019 в 04:43
поделиться

Я бы второй раз Sanitize удалил HTML-теги. Это действительно хорошо работает. По умолчанию он удаляет все, и вы можете указать белый список для тегов, которые хотите разрешить.

1
ответ дан 14 December 2019 в 04:43
поделиться

Предотвращение XSS-атак - серьезное дело, следите за hrnt и учитывайте, что, вероятно, существует на порядок больше эксплойтов, чем это возможно, из-за неясных особенностей браузера. Хотя html_escape будет довольно сильно блокировать вещи, я считаю ошибкой использовать что-то самодельное для этого типа вещей. Вам просто нужно больше внимания и экспертной оценки для любых гарантий надежности.

Я сейчас занимаюсь оценкой sanitize vs XssTerminate . Я предпочитаю подход xss_terminate из-за его надежности - очистка на уровне модели будет достаточно надежной в обычном приложении Rails, где весь пользовательский ввод проходит через ActiveRecord, но Nokogiri и, в частности, Loofah , кажется, быть немного более компетентным, более активно поддерживается и определенно более гибким и похожим на Ruby.

Обновление Я только что реализовал форк ActsAsTextiled под названием ActsAsSanitiled , который использует Santize (который недавно кстати, обновлен для использования nokogiri), чтобы гарантировать безопасность и правильность вывода RedCloth, и все это без необходимости использования каких-либо помощников в ваших шаблонах.

0
ответ дан 14 December 2019 в 04:43
поделиться
Другие вопросы по тегам:

Похожие вопросы: