【问题标题】:How to deny access to users for a file but not to the plugin which uses the file using htaccess?如何拒绝用户访问文件但不拒绝使用 htaccess 使用该文件的插件?
【发布时间】:2018-09-16 17:25:20
【问题描述】:

我有一个插件,它使用位于插件文件夹中的 xml 文件。

example.com/wp-content/plugins/myplugin/myxml.xml

我想拒绝用户访问文件,但不拒绝插件。如果我输入 URL,我可以读取文件。我在插件文件夹中的 htaccess 中使用了以下内容

<Files ~ "\.xml$">  
Order Allow,Deny
Deny from All
</Files>

我收到 403 错误但插件无法读取文件

我也使用了 Options -Indexes

我该如何解决这个问题?

【问题讨论】:

  • 我认为保护任何文件免受在线用户侵害的最佳方法是将这些文件移出网络空间。

标签: php wordpress apache .htaccess


【解决方案1】:
 <Files ~ "\.xml$">  
  Order Allow,Deny
  Deny from All
  Allow from localhost
</Files>

【讨论】:

  • 很遗憾没有效果,我得到403但插件无法读取文件
【解决方案2】:

只有将它放在主 .htaccess 中才有效。然后该文件无法从外部访问,但可以从 wordpress 访问

【讨论】:

    【解决方案3】:

    此问题的推荐解决方案是,设置正确的文件权限和用户组。因此,所有应用程序都可以访问该文件,但 Public Users 不能。 欲了解更多信息,请访问Linux File permission

    【讨论】:

      【解决方案4】:

      有几种方法可以解决这个问题:

      • 尽可能从文件系统加载文件,而不是通过网络加载。
      • 按照@Jamie_D 的建议使用访问控制。 如果example.com 不能解析为localhost,他的代码可能不起作用(检查您的/etc/hosts)。如果文件必须通过公共互联网访问,请使用您的公共 IP。

      作为参考,这里是mod_access的文档。

      可以根据客户端主机名、IP 地址或 客户端请求的其他特征,如在 环境变量。

      您也可以为该文件使用authentication

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-05-11
        • 1970-01-01
        • 2019-04-07
        • 1970-01-01
        • 2011-05-11
        • 2013-07-17
        相关资源
        最近更新 更多