Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/http/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Http 我应该拒绝未使用的请求方法吗?_Http_Zend Framework_Http Headers - Fatal编程技术网

Http 我应该拒绝未使用的请求方法吗?

Http 我应该拒绝未使用的请求方法吗?,http,zend-framework,http-headers,Http,Zend Framework,Http Headers,在我的Zend Framework MVC应用程序中,我只使用两种请求方法:GET和POST。我想知道,如果收到其他请求类型(如put或DELETE),是否应该在我的基本控制器中进行检查以引发异常 据我所知,有两个方面需要考虑: 它会改善安全吗?如果我允许框架对PUT、DELETE等做出响应,我是否会给潜在的黑客一个先发制人的机会 它会干扰现场的正确运行吗?例如,搜索引擎机器人是否依赖GET和POST以外的请求 非常感谢您的想法 正确的响应代码是405方法不允许,包括Allow:GET,POST

在我的Zend Framework MVC应用程序中,我只使用两种请求方法:GET和POST。我想知道,如果收到其他请求类型(如put或DELETE),是否应该在我的基本控制器中进行检查以引发异常

据我所知,有两个方面需要考虑:

  • 它会改善安全吗?如果我允许框架对PUT、DELETE等做出响应,我是否会给潜在的黑客一个先发制人的机会
  • 它会干扰现场的正确运行吗?例如,搜索引擎机器人是否依赖GET和POST以外的请求

  • 非常感谢您的想法

    正确的响应代码是
    405方法不允许
    ,包括
    Allow:GET,POST
    标题

    10.4.6不允许使用405方法

    请求行中指定的方法不允许用于由请求URI标识的资源。响应必须包含一个Allow标头,其中包含请求资源的有效方法列表


    由于错误或故意,有人违反你的应用程序/框架/网站等的api,以探查你的网站的弱点。(仅当您的站点仅为内部站点或在公共网络上时,频率才起作用。)

    如果您的站点支持开发人员,那么这可能是使用405方法代码not allowed进行回复的原因。也许只有当会话(假设会话)被标记为处于开发人员模式时才可以

    如果您不期望有效的开发人员,那么我建议您默默地接受任何不好的输入,以使坏人更难接受

    在正常情况下不给出错误消息的另一个原因是:在特定情况下缺少错误消息可以解释为坏数据使其比其他数据更深入堆栈——概述了可能的攻击路径

    最后,错误返回(类型,响应之前的延迟,以及更多)可以用来描述应用程序/框架的特定版本。然后,一旦找到攻击向量,就可以快速定位其他脆弱的设备。


    是的,以上是悲观的,我深深地记得80年代,当时每个人都响应ping、echo和其他诊断请求。但是坏人在这里,我们有责任强化我们的制度。更多信息请参见此

    我会拒绝任何未被认可的方法。否则,以后无法添加对它们的支持。机器人程序将只搜索只读方法,如GET。我怀疑这是否有任何安全方面的好处。潜在的黑客已经在调用您的代码,您必须响应某些请求,他们可能会尝试对这些请求进行非法格式化。(也就是说,除非框架对POST请求做了一些魔术,比如自动解析它并将数据保存到数据库,但这听起来不太可能。)