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

Apache 密码保护,只允许一个IP地址访问一个目录?,apache,security,.htaccess,Apache,Security,.htaccess,我的网站上有一个目录,我需要确保只有我自己才能进入。从我所做的阅读来看,似乎有两种方法可以保护目录: 使用.htaccess文件对目录进行密码保护 拒绝访问除my own之外的所有IP地址,也使用.htaccess文件访问目录 我需要尽可能安全地保护目录中的文件,所以我想我应该使用这两种方法进行双重保护 问题1:我遗漏了什么吗?(即,我是否可以添加另一层保护?) 问题2:我需要在.htaccess文件中放入什么才能使上述内容正常工作 假设您正在运行Apache,并且有一个AllowOverrid

我的网站上有一个目录,我需要确保只有我自己才能进入。从我所做的阅读来看,似乎有两种方法可以保护目录:

  • 使用.htaccess文件对目录进行密码保护
  • 拒绝访问除my own之外的所有IP地址,也使用.htaccess文件访问目录
  • 我需要尽可能安全地保护目录中的文件,所以我想我应该使用这两种方法进行双重保护

    问题1:我遗漏了什么吗?(即,我是否可以添加另一层保护?)


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

    假设您正在运行Apache,并且有一个
    AllowOverride
    指令,允许
    .htaccess
    文件使用
    ,那么以下内容应该是您的良好起点:

    <Limit GET>
        Order deny,allow
        Deny from all
        Allow from IP_ADDRESS_HERE
    </Limit>
    
    
    命令拒绝,允许
    全盘否定
    允许从此处的IP地址
    
    有关
    的更多文档:
    对于访问控制:

    假设您正在运行Apache,并且有一个
    AllowOverride
    指令允许
    .htaccess
    文件使用
    ,那么以下应该是您的良好起点:

    <Limit GET>
        Order deny,allow
        Deny from all
        Allow from IP_ADDRESS_HERE
    </Limit>
    
    
    命令拒绝,允许
    全盘否定
    允许从此处的IP地址
    
    有关
    的更多文档:
    对于访问控制:

    您的.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\u place/.htpasswd
    ),其中包含文本username:password\u散列。因此,如果我们以“nate”为例,以“secret”为密码(请不要使用该密码),您会得到:

    您可以使用此工具生成自己的密码文件:

    只需确保没有人可以读取您的
    .htpasswd
    文件。还要注意,基本身份验证本身不进行加密。如果你在一个开放的网络上,任何人都可以看到你的密码和通过网络传输的所有秘密数据。确保你通过https访问你的网站,如果这真的是一个秘密

    您可以在此处阅读有关
    .htaccess
    文件的更多信息:
    您的.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\u place/.htpasswd
    ),其中包含文本username:password\u散列。因此,如果我们以“nate”为例,以“secret”为密码(请不要使用该密码),您会得到:

    您可以使用此工具生成自己的密码文件:

    只需确保没有人可以读取您的
    .htpasswd
    文件。还要注意,基本身份验证本身不进行加密。如果你在一个开放的网络上,任何人都可以看到你的密码和通过网络传输的所有秘密数据。确保你通过https访问你的网站,如果这真的是一个秘密

    您可以在此处阅读有关
    .htaccess
    文件的更多信息:

    Limit指令不是一个好的选择。头、放、删……怎么办。。。?如果它在.htaccess文件中,实际上不需要任何围绕它的封闭指令,如果不是,则应该在Location指令中。Limit指令不是一个好的选择。头、放、删……怎么办。。。?如果它位于.htaccess文件中,实际上不需要任何围绕它的封闭指令,如果不是,则应该位于Location指令中。我尝试在需要保护的目录中创建一个.htaccess文件,并添加了以下内容:
    AuthUserFile/home/username/.htpasswd AuthGroupFile/dev/null AuthName“受保护的文件”AuthType Basic
    ,但当我从目录加载页面时,不会出现登录提示。页面仍在加载。请尝试以下疑难解答步骤:
    http://httpd.apache.org/docs/2.0/howto/htaccess.html#troubleshoot
    我试着像页面上说的那样将垃圾放入.htaccess文件中,但没有显示任何错误。指南上说“一个很好的测试是将垃圾放入.htaccess文件并重新加载。如果没有生成服务器错误,那么几乎可以肯定AllowOverride None有效。“现在请阅读
    https://httpd.apache.org/docs/2.0/mod/core.html#allowoverride
    ,这意味着您必须更改AllowOverride指令。我不知道现在您的设置是什么,但如果您不想将
    AllowOverride All
    放入
    httpd.conf
    中,您至少需要
    AllowOverride AuthConfig Limit
    。请注意,更改Apache的配置文件(
    apachectl
    )后,必须重新启动Apache。我尝试在需要保护的目录中创建一个.htaccess文件,并添加了以下内容:
    AuthUserFile/home/username/.htpasswd AuthGroupFile/dev/null AuthName“受保护的文件”AuthType Basic
    ,但是,当我从目录加载页面时,不会出现登录提示。页面仍在加载。请尝试以下疑难解答步骤:
    http://httpd.apache.org/docs/2.0/howto/htaccess.html#troubleshoot
    我试着像页面上说的那样将垃圾放入.htaccess文件中,但没有显示任何错误。指南上说“一个很好的测试是将垃圾放入.htaccess文件并重新加载。如果没有生成服务器错误,那么几乎可以肯定AllowOverride None有效。“现在请阅读
    https://httpd.apache.org/docs/2.0/mod/core.html#allowoverride
    ,这意味着您必须更改AllowOverride指令。我不知道现在您的设置是什么,但如果您不想将
    AllowOverride All
    放入
    httpd.conf
    中,您至少需要
    AllowOverride AuthConfig Limit
    。请注意,更改Apache的配置文件(
    apachectl
    )后,必须重新启动Apache。