簡體   English   中英

Apache 剝離“授權”標頭

[英]Apache strips down "Authorization" header

我的 Apache 2.2.15 服務器有一個小問題。 我正在使用 mod_wsgi 在它上面運行一個 Django 應用程序。 我激活了WSGIPassAuthorization On ,這使得基本身份驗證運行良好。 但是我最近實現了 OAuth2.0 來保護我的 API(隱式授權),我認為 Apache 不會讓它通過,因為它是“授權:不記名令牌”的形式。 “承載”是我猜的問題,盡管我不知道如何避免。

我試過 :

RewriteEngine On
RewriteCond %{HTTP:Authorization} ^(.*)
RewriteRule .* - [e=HTTP_AUTHORIZATION:%1]

在 httpd.conf、.htaccess(設置AllowOverride All )和我的虛擬主機中。 無事可做,行不通。 我已經在互聯網上爬了一天,除了這兩個解決方案之外沒有找到任何東西。

先感謝您 !

編輯:

OS : RedHatEL6.4
Apache : 2.2.15
Django: 1.6.6 w/ django-oauth-toolkit
Python: 2.7.8

我解決了我的問題,最終與我的Apache配置完全無關。 因此,如果您發現此主題尋找同一問題的答案,則下面的解決方案之一應該解決它:

配置WSGI:

WSGIPAssAuthorization On

配置.htaccess:

RewriteEngine On
RewriteCond %{HTTP:Authorization} ^(.*)
RewriteRule .* - [e=HTTP_AUTHORIZATION:%1]

您可以將這兩個文件放入httpd / conf.d / project.conf文件中!

幾個模塊將剝離Authorization標頭,試圖通過阻止腳本查看用戶名,密碼等來增強安全性......除非開發人員明確啟用此功能。 如果您只是CGIPassAuth on添加到.htaccess中,其中許多模塊將允許此標頭: CGIPassAuth on (source: Apache docs and StackOverflow

為了解決這個問題,我只是WSGIPassAuthorization On /etc/apache2/sites-available/mySite.conf文件中添加了WSGIPassAuthorization On ,如下:

        ...
                </Files>
        </Directory>

        WSGIPassAuthorization On

        WSGIScriptAlias / /home/X/wsgi.py
        WSGIDaemonProcess sepanta_dev python-path=/home/X python-home=/home/X/venv
        ...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM