微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Asp.Net Web API Block 404 页面上的任意文本

如何解决Asp.Net Web API Block 404 页面上的任意文本

在我的应用程序 (Asp.Net web api) 中,如果攻击者在 api url 之后插入任意文本,那么该文本将显示在 404 错误页面中。攻击者可以利用它来诱骗用户点击自定义链接或进行网络钓鱼攻击。

enter image description here

enter image description here

我想阻止任何任意文本出现在这样的错误页面上。这里需要注意的是,我们还没有在应用程序中实现基于 GUID 的错误消息。

解决方法

为了设置自定义 404 错误页面,在 中的 web.config 中添加以下内容:

<customErrors mode="On" redirectMode="ResponseRewrite">
  <error statusCode="404" redirect="~/404.html"/>
</customErrors>

我已设置 mode="On" 以便我们可以在本地查看自定义错误页面。通常,您只想在生产中显示这些,因此将设置 mode="RemoteOnly"

然后在 IIS 中添加自定义错误页面(请注意,这仅适用于 IIS 7+)。在 web.config 中,在 中添加以下内容:

<httpErrors errorMode="Custom">
  <remove statusCode="404"/>
  <error statusCode="404" path="/404.html" responseMode="File"/>
</httpErrors>

如果它没有帮助,因为我不知道您的应用程序的架构,您应该寻求路由匹配解决方案:

  • 实施智能 IHttpRouteConstraint
  • 将约束应用于属性路由
  • 将约束应用于集中式路由

这里是实现的细节: https://www.strathweb.com/2014/10/route-matching-overriding-404-asp-net-web-api/

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。