如何为nginx编写htaccess规则来保护目录

时间:2017-10-03 09:57:49

标签: wordpress .htaccess nginx

我正在尝试保护/ uploads目录中的某些类型的文件免受Wordpress网站中未登录的用户的攻击。问题是我正在尝试翻译Nginx服务器的指令。

htaccess语法为:

RewriteCond %{REQUEST_FILENAME} ^.*(pdf|doc|docx|ppt|pptx|)$
 RewriteCond %{HTTP_COOKIE} !^.*wordpress_logged_in.*$ [NC]
 RewriteRule . - [R=403,L]

我知道这不是"铁定"解决方案,但它足以满足我的需求。 这就是它应该是这样的:

# nginx configuration location ~ ^.*(pdf|doc|docx|ppt|pptx|)$ { }
  1. 但是我应该如何编写cookie部分?
  2. 此外,如何添加规则以将用户重定向到特定页面?

1 个答案:

答案 0 :(得分:0)

当然,只检查cookie的存在并不是保护文件的安全方法 - 攻击者很容易添加cookie。

但是,如果你不想检查cookie的存在,你可以使用:

location ~ ^.*(pdf|doc|docx|ppt|pptx|)$ {
    if ($cookie_CookieName = false) {
        return 301 http://example.com/redirect-here;
    }
}

现在唯一的另一个问题是,Wordpress登录的cookie名称包含一个随机数 - 例如wordpress_logged_in_12345

因此,您需要添加另一个Cookie来显示用户已登录。