密码保护,只允许一个IP地址访问目录?

时间:2012-07-09 00:56:46

标签: apache security .htaccess

我的网站上有一个目录,我需要确保除了我自己以外没有人可以进入。从我所做的阅读中,看起来有两种方法来保护目录:

  1. 密码使用.htaccess文件保护目录
  2. 拒绝访问所有IP地址,但访问目录,同时使用.htaccess文件
  3. 我需要尽可能安全地保护目录中的文件,所以我想我会使用这两种方法进行双重保护。

    问题1:我错过了什么吗? (即我可以添加另一层保护吗?)

    问题2:我需要在.htaccess文件中放置什么才能使上述工作正常?

2 个答案:

答案 0 :(得分:5)

您的.htaccess文件将包含:

AuthUserFile /usr/local/nate/safe_place/.htpasswd
AuthGroupFile /dev/null
AuthName "Protected Files"
AuthType Basic

require user nate
order deny, allow
deny from all
allow from 127.0.0.1

.htaccess文件位于您要保护的目录中。

您还需要一个.htpasswd文件(如上所示/usr/local/nate/safe_place/.htpasswd),其中包含文本用户名:password_hash。因此,如果我们使用“nate”作为示例并使用“secret”作为密码(请不要使用它),您将得到:

nate:XmN6pwFyy3Il2

您可以使用此工具生成自己的密码文件:http://www.tools.dynamicdrive.com/password/

确保没有人可以阅读您的.htpasswd文件。另请注意,基本身份验证本身不进行加密。如果您使用的是开放式网络,任何人都可以通过网络查看您的密码和所有秘密数据。如果真的那么秘密,请务必通过https访问您的网站。

您可以在此处详细了解.htaccess个文件: http://www.javascriptkit.com/howto/htaccess.shtml

答案 1 :(得分:2)

假设您正在运行Apache并且AllowOverride指令允许.htaccess文件使用<Limit>,则以下内容对您来说应该是一个不错的起点:

<Limit GET>
    Order deny,allow
    Deny from all
    Allow from IP_ADDRESS_HERE
</Limit>

有关<Limit>的更多文档:http://httpd.apache.org/docs/current/mod/core.html#limit 和访问控制:http://httpd.apache.org/docs/2.2/howto/access.html