一般而言,通过隐藏的手段提高安全性被认为是作用不大的做法。但某些情况下,尽可能的多增加一份安全性都是值得的。
一些简单的方法可以帮助隐藏 PHP,这样做可以提高攻击者发现系统弱点的难度。在 php.ini 文件里设置 expose_php = off ,可以减少他们能获得的有用信息。
另一个策略就是让 web 服务器用 PHP 解析不同扩展名。无论是通过 .htaccess 文件还是 Apache 的配置文件,都可以设置能误导攻击者的文件扩展名:
例子 1. 把 PHP 隐藏为另一种语言
# 使PHP看上去像其它的编程语言
AddType application/x-httpd-php .asp .py .pl
或者干脆彻底隐藏它:
例子 2. 使用未知的扩展名作为 PHP 的扩展名
# 使 PHP 看上去像未知的文件类型
AddType application/x-httpd-php .bop .foo .133t
或者把它隐藏为 HTML 页面,这样所有的 HTML 文件都会通过 PHP 引擎,会为服务器增加一些负担:
例子 3. 用 HTML 做 PHP 的文件后缀
# 使 PHP 代码看上去像 HTML 页面
AddType application/x-httpd-php .htm .html
要让此方法生效,必须把 PHP 文件的扩展名改为以上的扩展名。这样就通过隐藏来提高了安全性,虽然防御能力很低而且有些缺点。但是确实个性或者有趣了一些。
原文参见由 PHP5 研究室于2005年11月7日编译的《PHP 手册》——安全——隐藏 PHP。
若无特别说明,本文系原创,遵循 署名-非商业性使用 3.0 (CC BY-NC 3.0) 协议,转载文章请注明来自【闪星空间】,或链接上原文地址:http://shansing.com/read/198/
其实还不如用我的那种方法:http://green-vine.net/skills/39-use-htaccess-to-hide-file-extension
我是实在不想吐槽你
PHP学习中,关注本楼
嗯,建议多多查阅相关资料。
测试邮件回复。
您好,这个我在php官方文档也看到了,搜索后发现贵站文章,,但是我实战失败,修改后的文件会被下载,apache2.4
一个可能的解决方法是添加上你的版本号,如:
AddHandler application/x-httpd-php56 .php
AddHandler application/x-httpd-php70 .php
AddHandler application/x-httpd-php71 .php
可以试试。我没有测试。
不过老实说,并不建议用这种方式伪装 .php 扩展名:安全性几乎没有提升,还可能破坏其他的(基于文件扩展名的)安全规则。如果要重写地址,可以考虑常规的 rewrite 方法:在 PHP 里处理 URL 模式,或者在 .htaccess 添加相关规则。
这种方法我刚刚测试也失败了php73,
安全方面我是按部就班的刷https://www.php.net/manual/zh/security.php
看到https://www.php.net/manual/zh/security.hiding.php这一步时看到了,因为习惯边动手边学习,就卡到这里两天了,在云服务器和本地环境,均测试失败,很头疼