gpt4 book ai didi

asp.net - 潜在危险的输入 ASP.NET

转载 作者:行者123 更新时间:2023-12-04 05:18:58 25 4
gpt4 key购买 nike

.NET 4.0
VS 2012
IIS 7

我有一个应用程序可以接收各个页面上的电子邮件地址,我发现用户直接复制/粘贴到一些输入中,并且触发了标题中提到的错误,这是一个示例。

"blah blah" <blah@blah.com>

显然括号引发了问题。我意识到我可以简单地将验证切换到 2.0,但我不想这样做,所以这是我的问题。
  • 有没有办法让运行时 react 更好?遇到这种情况时,它不会抛出一个 super 可怕的页面,而是将其视为输入错误并向用户显示一条消息(在一般情况下)例如,在我所说的场景中,我可以显示一条错误消息关于 < 和 > 不允许出现在电子邮件地址中。我喜欢这种保护,但我不喜欢每次有人输入有潜在危险的输入时都会显示“哎呀”页面的想法。
  • 如果我要放宽验证:
  • 我可以在每页的基础上进行吗?我不相信,但我要求完整性
  • ASP.NET 为我提供了哪些工具来手动保护自己免受这些类型的问题的影响?我真的不想进入写东西的游戏来查看潜在危险的东西的输入。
  • 最佳答案

    您可以通过在页面标题中放置 ValidateRequest="false"来放松对每页的验证。

    然后,您可以使用正则表达式来验证电子邮件地址,如下所示:

    <asp:RegularExpressionValidator ID="RegularExpressionValidator1" runat="server"
    ControlToValidate="Email" ErrorMessage="Enter a valid e-mail address"
    ValidationExpression="\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*" />

    对于其他控件,您可以使用正则表达式“^[^<>]+$”来检查尖括号。实际上,您无需担心“潜在危险”的用户输入,除非您将其输出到客户端 (HTML/JavaScript),或者您将其包含在 SQL 语句中。

    或者,您可以尝试在页面中编写页面级错误处理程序或在 Global.asax 中编写应用程序级错误处理程序。

    页面级错误处理: http://msdn.microsoft.com/en-us/library/ed577840(v=vs.100).aspx

    应用级错误处理:
    http://msdn.microsoft.com/en-us/library/24395wz3(v=vs.100).aspx

    此页面提供了一些有关在 ASP.NET 中禁用请求验证的有用信息:
    http://msdn.microsoft.com/en-us/library/hh882339(v=vs.100).aspx

    关于asp.net - 潜在危险的输入 ASP.NET,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13895228/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com