2015-12-14 30 views
0

我使用apache 2.4.12(Ubunutu 15.10)作爲節點應用程序後面的oauth2代理。應用程序在登錄之前發送大量未經驗證的請求b/c它不知道它未經過驗證(它不知道/關心代理),這會創建大量可能導致問題的大型cookie。正確的方式來阻止一個網站,如果cookie不存在apache 2.4

我想要做的是說如果一個特定的cookie不存在(mod_auth_openidc_session) - 這意味着它還沒有auth'd - 阻止所有請求到我的服務器。到目前爲止,我有這個,但我不知道這是否是正確的(因爲病情需要時間來瑞普):

RewriteEngine On 
RewriteCond %{HTTP_COOKIE} !mod_auth_openidc_session 
RewriteRule .*my.server.com.* [F] 

這是在做我想要什麼?:

阻止所有HTTP請求( s)://my.server.com/或http(s)://my.server.com/login等,除非存在cookie mod_auth_openidc_session。

回答

0
RewriteCond %{HTTP_HOST} ^my\.server\.com$ 
RewriteCond %{HTTP_COOKIE} !mod_auth_openidc_session 
RewriteCond %{REQUEST_URI} ^/websocketpath   [NC] 
RewriteRule (.*) $1 [F,L,NC] 

所以,這是對我有用。現在,所有未經請求的請求似乎都會被阻塞,從而創建大量會話狀態。我在服務器故障處得到了一位仁慈的人的回答:

same question at serverfault

相關問題