Apache-2.2

允許來自 HTTP-basic 保護的 SSL apache 站點的引用者

  • March 19, 2012

我有一個受HTTP基本身份驗證保護的 apache 站點。身份驗證工作正常。現在我想通過依賴HTTP Referer標頭繞過來自特定網站的使用者的身份驗證。

這是配置:

   SetEnvIf Referer "^http://.*.example\.org" coming_from_example_org
   <Directory /var/www/>
           Options Indexes FollowSymLinks MultiViews
           AllowOverride None
           Deny from all
           Allow from env=coming_from_example_org
           AuthName "login required"
           AuthUserFile /opt/http_basic_usernames_and_passwords
           AuthType Basic
           Require valid-user
           Satisfy Any
   </Directory>

這對 工作正常HTTP,但對HTTPS. 我的理解是,為了檢查HTTP標頭,SSL必須完成握手,但apache<Directory>在握手之前檢查指令SSL,即使我將它們放在配置文件的底部。

問:我該如何解決這個問題?

PS:我並不癡迷於HTTP referer標題,我可以使用其他選項來允許來自已知網站的使用者繞過身份驗證。

您可能想要改進您的身份驗證機制。鑑於引用標頭由客戶端控制,我希望有人大約需要 18 秒才能弄清楚您在做什麼並繞過它。

我將使用的機制可能涉及為您的站點設置一個 cookie,表明使用者已“預認證”。然後,您可以在 apache 配置中測試該 cookie 的存在(和加密有效)內容,並允許以這種方式訪問。

引用自:https://serverfault.com/questions/371049