Как предотвратить внедрение кода Windows Server 2008 R2 . ASPX

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

Чек сейчас жалуется на возможность внедрения кода на сайт. Это пример того, о чем он говорит:

http://www.monorep.co.uk/vauxhall/new-vans/?DealergroupId=<aavxhv%20>

Если вы посмотрите на исходный код с помощью Firebug, то увидите, что он сделал это с моим кодом:

<input name="DealergroupId" type="hidden" value="<aavxhv >">

Хорошо. Сам по себе не вреден, но я вижу, к чему они стремятся.

Они приводят и другие очень простые примеры, но все они одни и те же линии.

Как вы можете на самом деле защититься от такого рода вещей? И это вредно?

Заранее спасибо.

1 ответ

Решение

Вы должны закодировать весь визуализированный текст на HTML-странице с помощью

HttpContext.Current.Server.HtmlEncode()

Весь визуализированный текст, который поступает из базы данных, из пользовательского ввода или из других источников.

например, ваш код будет выглядеть

<input name="DealergroupId" type="hidden" value="<%=Server.HtmlEncode(cParametrFromUrl)%>">
Другие вопросы по тегам