【问题标题】:Block access to a config file from external request but not internal in Apache2 Virtual Hosts阻止从外部请求访问配置文件,但在 Apache2 虚拟主机中不是内部请求
【发布时间】:2018-03-07 18:26:53
【问题描述】:

所以我有一个 config.json 文件,我想阻止外部连接,例如直接访问它的人,我的脚本需要在其上运行,所以我只想将我自己的托管文件的服务器列入白名单,而不是任何外部连接。

我在我的 VirtualHost 配置中尝试了这个,但它似乎没有工作,因为即使我在同一台服务器上的脚本也会出现 403 禁止错误。

<Files config.json>
Order deny,allow
Deny from all
Allow from 127.0.0.1
</Files>

请帮忙,谢谢!

【问题讨论】:

    标签: apache apache2 config httpd.conf virtual-hosts


    【解决方案1】:

    试试这个:

    <Files config.json>
       Allow from 127.0.0.1
       Order allow,deny
    </Files>
    

    【讨论】:

    • 不起作用,即使在我自己的脚本中也会出现 403 Forbidden 错误。
    • 它对我有用。禁用整个 Files 部分时打印的 REMOTE_ADDR 的值是多少?
    • 什么意思?如何打印出来?
    • 写一个简单的php脚本:&lt;?php var_dump($_SERVER); ?&gt;
    • 或者查看apache访问日志。
    【解决方案2】:

    在下面的例子中,没有认证,127.0.0.1 域中的所有主机都被允许访问;所有其他主机都被拒绝访问。

    2.2配置:

    <Files config.json>
    Order Deny,Allow
    Deny from all
    Allow from 127.0.0.1
    </Files>
    

    2.4配置:

    <Files config.json>
    Require host 127.0.0.1
    </Files>
    

    【讨论】:

      【解决方案3】:

      '...在同一台服务器上...' != 127.0.0.1!我怀疑您的脚本在同一台服务器上运行,但它确实通过公共 IP 地址访问服务器进程。

      如果我是对的,有两种可能性。

      • 重新配置您的脚本以通过localhost 或127.0.0.1 访问
      • 将Allow from语句中的地址替换为服务器地址

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-02-12
        • 1970-01-01
        • 1970-01-01
        • 2014-10-29
        • 2014-10-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多