您认为ASP.NET 4.0网站是否需要添加XSS安全性而不是默认选项?我无法在我的文本字段中输入任何javascript或任何标记,然后立即将其打印到页面上.
解决方法
Taken from the Owasp page linked to below: Untrusted data is most
often data that comes from the HTTP request,in the form of URL
parameters,form fields,headers,or cookies. But data that comes from
databases,web services,and other sources is frequently untrusted
from a security perspective. That is,it might not have been perfectly
validated.
在大多数情况下,如果您从任何来源获取输入并将其输出到HTML,则需要更多保护.这包括从文件,数据库等检索的数据 – 不仅仅是您的文本框.您可以拥有一个完全锁定的网站,让某人通过其他工具直接访问数据库,并能够插入恶意脚本.
即使您从只有受信任的用户能够输入数据的数据库中获取数据,您也不会知道该受信任的用户是否会无意中从网站复制并粘贴某些恶意脚本.
除非您绝对肯定地信任将在您的网站上输出的任何数据,并且没有可能的方法让脚本无意中(或恶意地遇到攻击者或心怀不满的员工)将危险数据放入系统,您应该清理所有输出.
如果您还没有,请熟悉这里的信息:https://www.owasp.org/index.php/XSS_%28Cross_Site_Scripting%29_Prevention_Cheat_Sheet
并浏览网站上的其他已知威胁.
万一你想念它,Microsoft.AntiXss库是一个非常好的工具供您使用.除了更好的HtmlEncode函数版本之外,它还具有很好的功能,如GetSafeHtmlFragment(),当你想在输出中包含不受信任的HTML并对其进行消毒时.本文介绍了正确的用法:http://msdn.microsoft.com/en-us/library/aa973813.aspx文章陈旧,但仍然相关.