Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/security/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
index.php及其内容的保护_Php_Security - Fatal编程技术网

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

黑客从服务器下载index.php文件的可能性有多大(不是结果,而是index.php文件的内容)?是否建议将index.php的内容放入modules/index_content.php,其中modules文件夹受.htaccess保护,index.php只包含字符串
?这有意义吗?

如果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文件

源代码泄漏可能发生在配置良好的服务器上,并不像您想象的那样罕见。正如其他人所说,如果您的服务器配置良好,那么直接请求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设备上正常工作。