我正在阅读一家"网络应用程序安全"公司的报告,该公司一直在扫描我正在为之工作的公司的几个网站.从报告中看来 - 似乎是在没有任何人为参与的情况下编写的 - 有几次尝试使用这样的请求打破我们的网站:
DEBUG /some_path/some_unexisting_file.aspx
Accept: */*
More-Headers: ...
Run Code Online (Sandbox Code Playgroud)
我们服务器的结果令我感到惊讶:
HTTP/1.1 200 OK
Headers: ...
Run Code Online (Sandbox Code Playgroud)
正如DEBUG在HTTP 1.1规范中似乎没有提到的那样,我希望结果是400 Bad Request或405 Method Not Allowed.
从早期关于SO的问题,我已经了解到DEBUG动词用于某种类型的ASP.NET应用程序的远程调试,但在该问题或其答案中没有很多细节可用.
DEBUG动词究竟用于什么?200 OK使用此动词时,为什么应用程序会回答无效的URL?这是安全问题吗?围绕DEBUG动词有任何潜在的安全问题,ASP.NET开发人员/系统管理员应该知道吗?
任何见解/建议/参考将不胜感激.
我正在开发一个ASP.NET Web表单应用程序.我有很多函数在某些特定情况下抛出异常.但是有很多功能.throw ex;在更新我的应用程序时,我不想一次又一次地删除和添加语句.那么,有什么方法可以检查项目是否处于调试模式?(即检查是否debug="true"在web.config中).
try{
//some code
}
catch (Exception ex)
{
if(//----what condition to check debug mode?----)
throw ex;
}
Run Code Online (Sandbox Code Playgroud)