在 IIS 中它可以阻止虚假的 API 调用吗?昨天,我被试图查看网站上是否存在页面的东西淹没了。他们得到了 404,但应用程序仍然需要检查这是否是应用程序中的一个好页面。IIS 是否可以停止此操作,或者 Web 应用程序是否需要对其进行处理并停止它。IIS 中是否有一个部分可以添加虚假路径来阻止这种情况?这会帮助https://docs.microsoft.com/en-us/iis/configuration/system.webserver/security/requestfiltering/denyurlsequences/或使用 IIS 重写的反向代理它只会传递设置的流量吗?
虚假的 API 调用
The controller for path '/bitrix/admin/' was not found
The controller for path '/cgi-bin/webcm'
The controller for path '/admin' was not found
The controller for path '/system/login'
The controller for path '/typo3/phpmyadmin/'
应用程序日志文件
2021-08-17 15:05:28,382 [16] ERROR HTI.LogServices.Implementation.Log4NetHelper - [undefined]: Unhandled Exception (System.Web.HttpException (0x80004005): The controller for path '/admin' was not found or does not implement IController.
at System.Web.Mvc.DefaultControllerFactory.GetControllerInstance(RequestContext requestContext, Type controllerType)
正如您已经提到的,IIS 的请求过滤应该能够为您提供帮助。
您正在使用 asp.net MVC 站点,因此会根据所有已配置的路由检查任何请求的 URL。这意味着您的应用程序层用于以 404 响应请求。
理想情况下,您希望在调用应用程序层之前在请求管道中更早地使用 404。
有几种选择:
您应该只考虑哪一个最适合您并且不会影响您自己的应用程序。
如果您启用失败的请求跟踪,您可以看到 404 响应是在管道中的哪个位置创建的。在我没有使用请求过滤的测试中,404 是在管道中的位置 232 创建的,使用请求过滤它是在位置 72 创建的,它是在调用应用程序层之前创建的。
是的,在您的 IIS 服务器前面的 Web 防火墙会更好,但缺少 IIS 可以在这些请求到达您的应用程序之前检测到这些请求。
确保您的自定义错误页面配置正确,除了 404 之外不要说其他任何内容。