index.php及其内容的保护
黑客从服务器下载index.php文件的可能性有多大(不是结果,而是index.php文件的内容)?是否建议将index.php的内容放入modules/index_content.php,其中modules文件夹受.htaccess保护,index.php只包含字符串index.php及其内容的保护,php,security,Php,Security,黑客从服务器下载index.php文件的可能性有多大(不是结果,而是index.php文件的内容)?是否建议将index.php的内容放入modules/index_content.php,其中modules文件夹受.htaccess保护,index.php只包含字符串?这有意义吗?如果Apache将*.php文件视为php文件(即呈现为正常文件),则不,它们无法访问源代码,至少在没有通过其他脚本或方法访问服务器的情况下是如此(在这种情况下,将脚本添加到modules/index_content
?这有意义吗?如果Apache将*.php文件视为php文件(即呈现为正常文件),则不,它们无法访问源代码,至少在没有通过其他脚本或方法访问服务器的情况下是如此(在这种情况下,将脚本添加到modules/index_content.php不会产生任何影响)。这没有意义
如果任何人可以访问您的
index.php
源代码,他也可以访问所有包含文件的源代码。通过http下载.php文件是不可能的,假设您的服务器配置没有更改(例如,php文件的处理程序被删除)。如果确实发生了这种情况,那么就有可能将.php文件作为纯文本文件下载
您应该将所有核心文件放在公共目录(public_html、htdocs等)之外,并使用它们的路径调用它们。如果您在Web服务器上安装了php,它们将无法下载php文件
请注意:使用htaccess保护文件夹模块,在index.php中,当有人访问index.php时,您将包含该文件夹中的文件。他们必须提供密码和用户名才能访问包含的文件。机会为空。但有两大例外:
- “丢失”计算机(通过SSH、FTP等)
- 人为错误:如果您有一个读取文件的脚本,请确保它不能用于读取php文件
~
或.bak
。您的服务器可能不会通过PHP解释器运行这些文件,因为它们通常是通过文件扩展名配置的。留下这些备份文件,你可能会泄露你的来源
本地文件包含
如果您有一个使用用户输入读取其他文件的webapp,也可能会出现问题。如果脚本未正确验证用户输入,则可能会受到LFI的攻击。像这样的脚本应该只读取白名单文件,或者至少限于某个目录。如果接受“./”,则存在一个目录遍历漏洞,这将使上述两个漏洞更加严重
除此之外,许多服务器都启用了
目录浏览
当默认文件不存在时(index.html、index.php、default.htm等),服务器将在目录中列出文件。这本身不会透露任何来源,但允许向恶意用户枚举服务器上的许多文件(服务器端已处理或未处理),从而很容易集中进一步的攻击
通过备用服务器披露信息源
另一种意外情况是,两个web服务器(可能是间接地)指向同一个文档根。如果其中一个web服务器未配置为处理PHP,则可以公开源代码。我曾多次看到,当web服务器被配置为针对某些URL模式(通常是按目录)将代理反向到链接的应用程序服务器时,会发生这种情况。e、 g.让Tomcat处理/论坛下的所有事务
SQL注入
几乎每个严肃的DBMS都有一个函数,允许它读取系统上的文件。如果您不保护您的数据库输入(请使用参数化查询),您可能容易受到通过此机制泄露源代码的攻击。请注意,在这个场景中,源代码泄露是您最后关心的问题
我相信还有很多其他的,但这些是我看到这种披露的最常见的方式。请记住,安全性是一个过程,其范围非常广泛。通常,问题的根源是被视为独立实体的关注点、系统或应用程序之间的交互。除非您的php安装出错,否则他们无法下载代码(假设他们没有ssh、ftp等访问权限)。我曾经安装过php+apache,但忘记重新启动apache,因此人们可以看到我的*.php文件..+1的源代码,从而将核心代码保留在文档根目录之外。这真的可以限制其他漏洞的影响。如果你有一个目录遍历漏洞,就有可能。+ 1实际上提到真正的攻击要考虑。尽管需要注意的是,在现代Linux发行版上,您将无法使用DMBS的文件io功能访问web根目录。AppArmor或SELinux应该阻止你。它应该可以在默认的windows设备上正常工作。