在asp.net webforms中,如果我使用的是ValidatorControls,我还需要使用反xss库吗?例如,我正在将TextBox1验证为电子邮件地址,但我正在使用内置控件。
<form id="form1" runat="server">
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
<asp:Button ID="Button1" runat="server" Text="Button" />
<asp:RegularExpressionValidator ID="RegularExpressionValidator1" runat="server" ErrorMessage="RegularExpressionValidator" ControlToValidate="TextBox1" ValidationExpression="\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*"></asp:RegularExpressionValidator>
</form>
答案 0 :(得分:1)
所有用户输入都是可疑的。这是此页面上唯一的表单字段吗?用户输入包括:
最常见的攻击形式似乎是脚本注入,跨站点脚本和SQL注入。对于SQL注入,可以通过使用参数化查询来减轻这种影响。它是参数化数据库查询的行为,使存储过程对攻击具有弹性。可以通过在Web应用程序项目中下载和使用Microsoft Anti-Cross Site Scripting Library来处理其他形式的脚本攻击。
最佳实践包括将此库与正确的数据验证(验证器)和过滤(正则表达式)结合使用。如果您拥有易受攻击的现有代码,您仍然可以使用工具检查代码,然后您可以根据需要实施必要的保护措施。
答案 1 :(得分:0)
是 - 验证器不会阻止恶意输入。只要有数据被发送回服务器,它总是容易受到注入攻击。
WebForms通过ViewStateUserKey提供内置保护。它是按用户会话设置的。你可以在这里阅读一些例子: https://msdn.microsoft.com/en-us/library/system.web.ui.page.viewstateuserkey.aspx
关于实施: http://www.codeproject.com/Articles/686881/Hack-Proof-Your-ASP-NET-Applica