如何解决Asp.Net Web API Block 404 页面上的任意文本
在我的应用程序 (Asp.Net web api) 中,如果攻击者在 api url 之后插入任意文本,那么该文本将显示在 404 错误页面中。攻击者可以利用它来诱骗用户点击自定义链接或进行网络钓鱼攻击。
我想阻止任何任意文本出现在这样的错误页面上。这里需要注意的是,我们还没有在应用程序中实现基于 GUID 的错误消息。
解决方法
为了设置自定义 404 错误页面,在
<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 举报,一经查实,本站将立刻删除。