黑客有什么机会从服务器下载index.php文件(不是结果,而是index.php文件的内容)?您是否建议将index.php的内容放入modules / index_content.php,其中modules文件夹是.htaccess protected AND index.php包含唯一的字符串<?php require_once('modules/index_content.php') ?>
?它有意义吗?
答案 0 :(得分:4)
源代码泄露可能发生在配置良好的服务器上,并不像您想象的那么罕见。正如其他人所说,如果您的服务器配置是健全的,那么直接请求PHP文件的人就不会有问题。
但是你仍然可能容易受到:
可通过备份访问脚本资源
许多编辑者都会留下具有常见文件扩展名的备份文件,例如~
或.bak
。您的服务器可能无法通过PHP解释器运行它们,因为它们通常通过文件扩展名配置。保留这些备份文件,您可能会披露您的来源。
包含本地文件
如果您有一个使用用户输入来读取其他文件的webapp,也会出现问题。如果脚本未正确验证用户输入,则可能容易受到LFI的攻击。这些脚本应仅读取列入白名单的文件,或至少限制在某个目录中。如果接受“../”,那么您将有一个目录遍历漏洞,这将加剧上述两个漏洞,甚至更严重。
此外,许多服务器已启用
目录浏览
如果没有默认文件(index.html,index.php,default.htm等),则服务器将列出目录中的文件。这不会自行披露任何来源,但允许将服务器上的许多文件(服务器端处理或未处理)枚举给恶意用户,从而可以轻松集中进一步的攻击。</ p>
通过备用服务器披露来源
另一个意外情况可能是两个Web服务器指向(可能是间接)同一文档根目录。如果其中一个Web服务器未配置为处理PHP,则可以公开源。我已经看到,当web服务器被配置为针对某些URL模式(通常是通过目录)反向代理到链式应用服务器时,这种情况偶然发生了很多次。例如让Tomcat处理/ forum下的所有内容。
SQL注入
几乎每个严肃的DBMS都有一个允许它读取系统上文件的功能。如果您不保护数据库输入(请使用参数化查询),您可能很容易通过此机制泄露源代码。请注意,在这种情况下,源代码泄露是您最后的关注点。
我确信还有很多其他人,但这些是我看到这种披露的一些最常见的方式。请记住,安全是一个过程,其范围很广。通常,关注点,系统或应用程序的交互被视为导致问题的独立实体。
答案 1 :(得分:1)
如果* .php文件被Apache视为PHP文件(即正常呈现),那么不,他们无法访问源,至少没有通过其他脚本或手段访问服务器(在这种情况下,将脚本添加到modules / index_content.php不会产生任何影响。)
答案 2 :(得分:1)
没有任何意义。
如果有人有权访问您的index.php
来源,他还可以访问所有已包含文件的来源。
答案 3 :(得分:1)
无法通过http下载.php文件,假设您的服务器配置不会更改(例如,删除了PHP文件的处理程序)。如果发生这种情况,那么.php文件可能会以纯文本文件的形式下载。
您应该将所有核心文件放在公共目录之外(public_html,htdocs等)并使用它们的路径调用它们。
答案 4 :(得分:1)
如果您在网络服务器上设置了PHP,则无法下载php文件。
作为注释:使用htaccess保护文件夹模块,在index.php中,当有人访问index.php时,你要包含该文件夹中的文件,他们必须提供密码和用户名才能访问所包含的文件。
答案 5 :(得分:0)
机会为空。但有两个例外: