Моего сайта позволяет сайт-пользователям писать блог-сообщенияПозволить только некоторые HTML-теги в качестве входных данных пользователя
class BlogPost
{
[AllowHtml]
public string Content;
}
Сайт создан с использованием шаблона приложения MVC5 Интернета и использует самозагрузку 3 для его CSS. Поэтому я решил использовать http://jhollingworth.github.io/bootstrap-wysihtml5, чтобы позаботиться обо всем части JavaScript Rich Text Editor.
Это работает как шарм. Но для того, чтобы сделать POST, мне пришлось добавить атрибут [AllowHtml]
, как в приведенном выше коде. Так что теперь я боюсь опасных вещей, которые могут попасть в базу данных и быть в очереди отображены для всех пользователей.
Я пытался дать значения, как <script>alert("What's up?")</script>
и т.д. в форме, и это, казалось, было хорошо ... текст отображался точно таким же образом (<script>
стал <script>
. Но это преобразование, казалось, быть сделано яваскриптом плагиным я использовал.
Так что я использовал скрипач, чтобы составить запрос POST с тем же тегом сценария и на этот раз, на странице фактически выполняется код JavaScript.
есть ли способ, я могу понять, уязвимый вход как <script>
и даже <a href="javascript:some_code">Link</a>
. ..?
Это неверно, что уценка не нуждается в вводе HTML для дезинфекции. Markdown позволяет произвольный HTML. Вы все еще должны его дезинфицировать. –