在asp.net中,如果我使用ValidatorControls,我还需要使用反xss库吗?

时间:2016-05-05 17:15:45

标签: asp.net

在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>

2 个答案:

答案 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