Как предотвратить внедрение кода 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)%>">