2015-12-14 28 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

相关问题