如何让浏览器远离我的库?他们应该放在哪里?

时间:2012-08-12 18:07:08

标签: php security

通过研究,我发现了两种阻止客户端直接使用浏览器访问库的常用技术:

  1. 使用.htaccess将其保留
  2. 定义一个常量并将其传递给包含的文件,包含文件然后检查该常量是否存在。
  3. 但是,只是将这些文件保留在文档根目录下似乎是明智的。这种方法有什么问题吗?

4 个答案:

答案 0 :(得分:9)

最好的办法是将它放在你的docroot之外。没有理由将包含在可直接访问HTTP的位置。

某些共享的网络主机配置不当,没有此选项,但大多数情况下,您肯定可以在自己的服务器或VPS上进行此选择。

答案 1 :(得分:2)

要完成Brad的回答,您可以按照以下方式整理文件夹:

/path/to/project/
  public_html/
    index.php
  includes/
    includes.php

您的网络服务器根文件夹为public_html

如果您无法修改此结构,唯一可以接受的方法是使用.htaccess(或等效内容)来阻止公开访问includes

答案 2 :(得分:0)

如果您使用Apache Webserver,则可以拒绝访问所有.inc.php文件。您只需将以下内容添加到Apache Vhost配置中:

<FilesMatch .inc.php>
   Order allow, deny
   deny from all
</FilesMatch>

您仍然可以在php代码中包含这些文件。

答案 3 :(得分:0)

如果库文件只是定义了类/函数/什么,并且您的服务器没有以可以查看源的方式配置,那么无论如何通过Web服务器请求脚本都无法实现。话虽这么说,如果你能,你可以将它们存储在文档根目录之外。