【问题标题】:Can apache be configured to ignore OPTIONS requests?可以将 apache 配置为忽略 OPTIONS 请求吗?
【发布时间】:2011-01-16 05:41:33
【问题描述】:

我为工作中的几个部门运行了一个小型 web 应用程序,它的流量非常低,并且没有那么多用户。它建立在 Django 之上,并使用 apache 作为 Web 服务器。 我已经配置了在发生任何错误时通过电子邮件发送给我的东西,直到昨天这都是一件好事 - 没有很多错误,但有时用户在遇到问题时不会说出来,所以它让我能够掌握最新情况.

昨天我们有了一个新用户,我开始收到大量错误电子邮件。他不知道有什么问题,所以我认为这是幕后的事情。当我查看日志时,它们是使用“Microsoft Data Access Internet Publishing Provider Protocol”和“Microsoft Office Protocol Discovery”的 HTTP OPTIONS 请求。在那之前我从未听说过这个,但它似乎是某种 MS 网络文件夹/webDAV 的东西。

一种选择是弄清楚他如何关闭它并告诉他停止这样做,但我宁愿在这里砍掉头并做一些事情,比如让 apache 不将这些请求传递给 Django 在那里有什么办法可以处理?

【问题讨论】:

    标签: django apache http webdav


    【解决方案1】:

    重写选项很好,“Apache Way”可能更像:

    <LimitExcept GET POST>
    deny from all
    </LimitExcept>
    

    或者...

    <Limit OPTIONS>
    deny from all
    </Limit>
    

    【讨论】:

    • Apache 说:“这里不允许”
    【解决方案2】:

    我找到了一个由不同框架使用并移植到 Django 的解决方案。我将它放在生成带有 .XLS 或 .DOC 文件链接的 HTML 的任何视图的顶部:

    if request.method == 'OPTIONS':
        response = HttpResponse()
        response['Allow'] = 'GET, HEAD, POST'
        return response
    

    我更喜欢 Apache 解决方案...假设它不会在 Windows 方面造成问题。

    【讨论】:

      【解决方案3】:

      怎么样:

      RewriteEngine On
      RewriteCond %{REQUEST_METHOD} ^OPTION
      RewriteRule .* - [F]
      

      (启用 mod_rewrite。)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2013-12-29
        • 2012-08-14
        • 1970-01-01
        • 1970-01-01
        • 2021-04-23
        • 1970-01-01
        • 2021-09-13
        相关资源
        最近更新 更多