黑客能够从服务器上下载index.php文件的机会是什么(不是结果,而是index.php文件的内容)?你是否建议将index.php的内容放到modules/index_content.php,其中modules文件夹是.htaccess保护AND index.php包含唯一字符串<?php require_once('modules/index_content.php') ?>
?是否有意义?index.php并保护其内容
回答
源代码披露可能发生在配置良好的服务器上,并不像您想象的那么难得。正如其他人所说,如果你的服务器配置是健全的,那么直接请求PHP文件的人就不会有问题。
但是你仍然有可能受到:
脚本源通过备份残疾人专用
许多编辑留下常见的文件扩展名的备份文件,如~
或.bak
。您的服务器可能无法通过PHP解释器运行这些服务器,因为它们通常是通过文件扩展名配置的。留下这些备份文件,你可以公开你的来源。
本地文件包含
还可以有一个问题,如果您有使用用户输入读取其他文件的web应用程序。如果脚本没有正确验证用户输入,它可能容易受到LFI的影响。这些脚本只能读取列入白名单的文件,或者至少应限制在某个目录中。如果“../”被接受,那么你有一个目录遍历漏洞,这将加剧上述两个漏洞会更加严重。
添加到这一点,许多服务器已经启用
目录浏览
这是当你的服务器将列出目录中的文件,如果一个默认文件不存在(index.html,index.php,default.htm等)。这不会公开任何来源,但允许服务器上的许多文件(服务器端处理或不处理)将被枚举给恶意用户,使其成为可能非常容易集中进一步的攻击。经由备用服务器
来源公开
另一个意外情形可以是当指出两个web服务器(可能是间接地)在相同的文档根。如果其中一个Web服务器未配置为处理PHP,则可以披露该源。当一个Web服务器被配置为反向代理某个URL模式的链式应用程序服务器(通常通过目录)时,我曾多次意外地看到过这种情况。例如让Tomcat处理/ forum下的所有内容。
SQL注入
几乎每一个严肃的DBMS具有的功能,允许其在系统上读取文件。如果您不保护数据库输入(请仅使用参数化查询),则可能会通过此机制泄露源代码。请注意,在这种情况下,源代码泄露是您最后关心的问题。
我确定有很多其他人,但这些是我看到这种披露的最常见方式。请记住,安全是一个过程,范围广泛。通常是作为导致问题的独立实体处理的关注点,系统或应用程序的交互。
+1实际提及真正的攻击考虑。虽然应该注意的是,在一个现代的Linux发行版中,您将无法使用DMBS的文件io功能访问web根目录。 AppArmor或SELinux会阻止你。它应该在没有问题的默认窗口框上工作。 – rook
如果* .php文件被Apache视为PHP文件(即正常呈现),则不能访问源,至少不能通过其他脚本或方式访问服务器(在这种情况下,将脚本添加到modules/index_content.php将不会产生影响)。
它没有任何意义。
如果有人有权访问index.php
源文件,他还可以访问所有包含文件的源文件。
没有办法通过http下载.php文件,假设您的服务器配置不会改变(例如PHP文件的处理程序被删除)。如果发生这种情况,那么有可能.php文件可以作为纯文本文件下载。
您应该将所有核心文件放在公共目录(public_html,htdocs等)之外并使用它们的路径调用它们。
+1将您的核心代码保留在文档根目录之外。这可以真正限制其他漏洞的影响。 – Cheekysoft
如果您有目录遍历漏洞,则可能会发生这种情况。 – rook
如果您已经在您的网络服务器上设置了PHP,他们无法下载php文件。
注意:使用htaccess保护文件夹模块,并在index.php文件中包含一个文件,当有人访问index.php时,他们必须提供密码和用户名才能访问包含的文件。
有可能为空。两大例外,但:
- “迷失”机(通过SSH,FTP等,...)
- 人类的错误:如果你有一个脚本读取文件,以确保它无法使用阅读你的PHP文件。
- 1. 保护内容
- 2. AES内容保护
- 3. 用Javascript保护内容
- 4. 保护网页内容
- 5. Kentico - 密码保护内容
- 6. Tomcat保护静态内容
- 7. Angular2如何保护内容
- 8. 如何保护ajax内容
- 9. 保护内容文件
- 10. 得到的index.php内容
- 11. 禁用file_get_contents以保护html内容
- 12. 保护HTTP请求的部分内容?
- 13. 如何保护AIR中的内容?
- 14. iPad - 如何在UItextview中保护内容?
- 15. Android - 加密/保护SD卡内容
- 16. 什么是AVAsset的保护内容
- 17. 保护我的博客内容
- 18. 保护要复制的USB的内容
- 19. 保护Apache提供的静态内容
- 20. 保护空气应用程序内容
- 21. 保护我的QR码的内容
- 22. 如何确保Flex div的内容保留在其容器内?
- 23. 密码保护Apache网站,它的所有内容都需要保护
- 24. 清除受保护工作表中未受保护特定范围的内容
- 25. MonoTouch:NSData内存保护
- 26. 下载URL的内容,并将其保存
- 27. 从RSS中提取内容并将其保存为新文件
- 28. 困惑:内部,保护,受保护的内部
- 29. 受保护的内部和内部受保护有区别吗?
- 30. 一个index.php处理所有内容
除非你的PHP安装搞砸了,他们不能下载代码(假设他们没有ssh,ftp等访问权限)。我安装了一次php + apache,并忘记重新启动apache,结果人们能够看到我的* .php文件的源代码。 – Vamsi