如何实现隐藏 php 的扩展名访问

如何实现隐藏 php 的扩展名访问,第1张

一般而言,通过隐藏的手段提高安全性被认为是作用不大的做法。但某些情况下,尽可能的多增加一份安全性都是值得的。

一些简单的方法可以帮助隐藏 PHP,这样做可以提高攻击者发现系统弱点的难度。

在 php.ini 文件里设置 expose_php = off ,可以减少他们能获得的有用信息。

另一个策略就是让 web 服务器用 PHP 解析不同扩展名。无论是通过 .htaccess 文件还是 Apache 的配置文件,都可以设置能误导攻击者的文件扩展名:

把 PHP 隐藏为另一种语言

Apache代码

# 使PHP看上去像其它的编程语言

AddType application/x-httpd-php .asp .py .pl

或者干脆彻底隐藏它:

使用未知的扩展名作为 PHP 的扩展名

Apache代码

# 使 PHP 看上去像未知的文件类型

AddType application/x-httpd-php .bop .foo .133t

或者把它隐藏为 HTML 页面,这样所有的 HTML 文件都会通过 PHP 引擎,会为服务器增加一些负担:

用 HTML 做 PHP 的文件后缀

Apache代码

# 使 PHP 代码看上去像 HTML 页面

AddType application/x-httpd-php .htm .html

要让此方法生效,必须把 PHP 文件的扩展名改为以上的扩展名。这样就通过隐藏来提高了安全性,虽然防御能力很低而且有些缺点。

一,找到/public/.htaccess文件,如果你的入口文件已经移动到根目录下,那么你的.htaccess文件也要剪切到根目录下,总之要确保.htaccess跟入口的index.php保持同级。

二,根据你的php环境分别设置.htaccess文件:

Apache:

<IfModule mod_rewrite.c>Options +FollowSymlinks -Multiviews

RewriteEngine on

RewriteCond %{REQUEST_FILENAME} !-d

RewriteCond %{REQUEST_FILENAME} !-f

RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]</IfModule>

phpstudy:

<IfModule mod_rewrite.c>Options +FollowSymlinks -Multiviews

RewriteEngine on

RewriteCond %{REQUEST_FILENAME} !-d

RewriteCond %{REQUEST_FILENAME} !-f

RewriteRule ^(.*)$ index.php [L,E=PATH_INFO:$1]

</IfModule>

Nginx(在Nginx.conf中添加):

location / { // …..省略部分代码

if (!-e $request_filename) {

rewrite ^(.*)$ /index.php?s=/$1 last

break

}

}

将PHP隐藏为其它语言

在你的httpd.conf里任意位置添加下面这一行

# Make PHP code look like other code types

AddType application/x-httpd-php .asp .py .pl .jsp aspx


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/11422633.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-16
下一篇 2023-05-16

发表评论

登录后才能评论

评论列表(0条)

保存