【问题标题】:how to restrict html tags in query string in mvc如何在mvc中限制查询字符串中的html标签
【发布时间】:2018-03-01 04:29:48
【问题描述】:

当用户直接在 URL 中输入 html 内容时如何处理请求。 当用户在 URL 中输入 html 标记时,我想重定向到错误页面,这在 MVC 中是可能的。

我已经尝试从BeginExecute 事件中创建覆盖方法。

请给点建议。

谢谢。

【问题讨论】:

  • 有任何可重现的示例代码吗?您能否提供要使用所描述事件阻止的禁止查询字符串 URL 的示例?
  • 不,我想阻止任何在查询字符串值中包含 html 的查询
  • @KevinShah 你有没有尝试使用 HttpUtility.ParseQueryString(),你可以获取查询字符串参数并检查它们是否有 html 标签
  • 如果用户在查询字符串中输入任何 html 标记,它将不会执行,因为在我的操作中我没有设置 AllowHtml 属性

标签: asp.net-mvc asp.net-mvc-4 c#-4.0


【解决方案1】:

meybe 可以使用RouteHandler 当用户需要重定向到任何 外部页面、缩短长 URL 或使 URL 更加用户友好。

请检查我的答案

Error handling ASP.NET MVC

【讨论】:

    【解决方案2】:

    您可以使用Request validation 进行操作。它阻止从客户端到服务器接受未编码的 HTML/XML 等。它验证从客户端传递到服务器的所有数据。要使用此功能,您必须在web.config 中将requestValidationMode 设置为4.5,例如:

    <httpruntime requestvalidationmode="4.5" />
    

    更多信息请见this article

    【讨论】:

      【解决方案3】:

      您始终可以在 web.config 中选择 CustomErrorMode="On" 并使用您的错误控制器进行配置

      Custom Error Mode 将帮助您重定向任何无效或恶意链接或内容,以将其重定向到您的错误控制器并按照您想要的方式进行处理。

      【讨论】:

      • 这将重定向到正确的错误页面,但我不想在错误页面上重定向用户但显示消息但现在可以重定向
      • 无论如何,如果在 URL 中输入任何 html 内容,您可以显示一条消息,您可以通过指定模式在路由中配置它。
      猜你喜欢
      • 2016-07-24
      • 1970-01-01
      • 1970-01-01
      • 2012-11-07
      • 2010-10-05
      • 1970-01-01
      • 2011-06-27
      • 1970-01-01
      • 2012-07-23
      相关资源
      最近更新 更多