我在IIS 8上运行了几个启用了UrlScan 3.1的ASP.NET MVC网站。我还在这些网站上启用了一些日志记录,它们捕获未处理的异常并将它们写入数据库中的日志表。
我发现很多例外来自这些网站:
System.Web.HttpException
The controller for path '/Rejected-By-UrlScan' was not found or does not implement IController.
通过查看我自己的日志,我可以看到生成此错误的请求URL类似于以下内容(真实域名替换为示例):
/Rejected-By-UrlScan?~//https://mywebsite.com/login/login/?aspxerrorpath=/Rejected-By-UrlScan
看到我无法分辨出真正触发此请求的是什么,然后我查看了UrlScan生成的日志文件;我可以看到为什么某些网址可能会被拒绝的原因很多,例如:
2014-02-11 02:42:29 119.147.146.189 4 GET //https://mywebsite.com/login/login Rejected extension+not+allowed file+extension .com -
2014-02-11 02:42:32 119.147.146.189 4 GET //https://mywebsite.com/login/login/?aspxerrorpath=/Rejected-By-UrlScan Rejected URL+contains+dot+in+path URL - -
2014-02-11 02:42:37 119.147.146.189 4 GET //https://mywebsite.com/scripts/jquery-1.9.1.min.js Rejected URL+contains+dot+in+path URL - -
2014-02-11 08:24:19 79.122.154.178 6 OPTIONS /Content/Styles/ Rejected verb+not+allowed HTTP+method - -
我从这些日志文件中无法理解的是,如果网址被拒绝,为什么我的网站会继续运行?
所以基于此我有两个问题: