在我的Zend Framework MVC应用程序中,我只使用两种请求方法:GET和POST。我想知道是否应该在我的基本控制器中检查是否在收到其他请求类型时抛出异常(例如PUT或DELETE)。
据我所知,有两个方面需要考虑:
非常感谢您的想法!
答案 0 :(得分:2)
正确的响应代码为405 Method Not Allowed
,包括Allow: GET, POST
标题。
10.4.6 405不允许的方法
请求行中指定的方法不允许由Request-URI标识的资源。响应必须包含一个Allow头,其中包含所请求资源的有效方法列表。
答案 1 :(得分:1)
由于错误或故意,人们违反您的应用/框架/网站等的API,以探测您的网站的弱点。 (只有当您的网站仅在内部或在公共网络上时才有频率。)
如果您的网站支持开发人员,那么这可能是使用405代码方法回复的可能原因。也许只有当会话(假定会话)被标记为处于开发者模式时。
如果您不期望有效的开发人员,那么我建议您默默地吞下任何不良输入,以使坏人更难。
在正常情况下不提供错误消息的另一个原因:在特定情况下缺少错误消息然后可以被解释为坏数据使其进一步进入堆栈而不是其他数据 - 概述可能的攻击路线。
最后,错误返回(类型,响应之前的延迟等等)可用于表征特定版本的应用程序/框架等。一旦发现攻击向量,这可用于快速定位其他易受攻击的安装
是的,上面是悲观的,当我们回应ping,echo和其他诊断请求时,我深情地记得80年代。但坏人在这里,我们有责任强化我们的系统。有关详情,请参阅此TED video。