php.ini配置中有3处设置不当会使网站存在安全问题-php教程

资源魔 31 0
一切的PHP源码网站都必需设置装备摆设环境,不管是应用集成环境仍是本人手动搭建,可能很少有人存眷过php.ini外面设置装备摆设的这些货色到底有甚么作用,不少站长正在设置php.ini文件时,都是网上找一个教程,而后人家说那里添加那里删除了按步骤进行,然而这外面的设置还真有两处会惹起网站平安成绩。

8.png

有人会说就一个php.ini文件怎样可能会有平安成绩呢,难不可hiker会攻打的我php.ini文件不可?

这倒没有是啦,而是运转形式会给hiker提供一个窗口,请看上面的设置装备摆设步骤阐明。

windows零碎上装置PHP为例,一切版本的php.ini文件的设置简直都是同样的,先辞官方网站下载需求的PHP版本,而后解紧缩并重定名。

假定装置php7.4,装置正在效劳器的D盘根目次:下载Non-Thread Safe (NTS) 版本的PHP顺序,而后解紧缩,并重定名为“php”文件夹,将其拷贝到D盘根目次上面。

关上D:\php下的php.ini-development文件,复制一份并将其重定名为php.ini,关上D:\php\php.ini文件,上面是完好的设置装备摆设进程。

59.png

一、将short_open_tag = Off改成

short_open_tag = On

这样修正的作用是一些网站的模板文件中应用了如<? ?>这样的php代码,可保障代码能够失常执行,正在ecshop、dedecms以及WordPress等模板中也都常见于这种代码。

二、将expose_php = On,将其改成

expose_php = Off

作用是出于网站平安,制止显示php的版本号,避免他人针对特定php版本破绽攻打网站。有的网站你用站短工具一查,应用的是甚么web效劳器、PHP版本是几何都了如指掌,关于特定的PHP版本破绽,hiker当然是晓得的,暗藏版本号虽不克不及说处理了成绩,然而会给hiker添加难度。

三、查找以下代码

; On windows:
; extension_dir = "ext"

将这里的extension_dir后面的分号去掉,而且把ext修正为PHP的装置门路,以下所示。留意斜杠没有要写反了,由于我把PHP装置正在D盘的。

extension_dir = "D:\php\ext"

四、查找max_execution_time = 30,将数字30修正为3001200。作用是每一个剧本执行的最年夜工夫,默许是30秒,处理可能由于网速以及效劳器的地点(如外洋主机)可能会老是衔接超时的成绩。

五、搜寻;cgi.force_redirect = 1,把后面的分号去掉,并把数字1改成0cgi.force_redirect = 0的意义就是封闭重定向执行php文件,出于平安思考避免他人上传木马执行如:你的网站url/as=你的网站url/sdf/muma.php,这样的重定向PHP文件是可执行的,将这个设置装备摆设改成0之后这种型的重定向PHP文件就没有会执行了。

这也是为何有的网站老是被挂马的缘由,这样修正之后即使是网站前台存正在平安破绽,被hiker上传了木马文件,经过这样的形式木马文件没有会运转,以是不用。

六、查找代码;cgi.fix_pathinfo=1将分号去掉并将数字1改成0。作用是制止解析合法php文件,如/a.jpg/1.php这样的图片下的一个php文件属于合法的,设置为0就是制止执行。这类将木马假装成图片上传的文件存正在已久,制止这种文件运转,即便被上传了木马,因为设置了没有容许运转,以是不用。

七、查找代码fastcgi.impersonate = 1将后面的分号去掉。作用是iisnginx应用的是fastcgi形式解析php文件,没有开启就不克不及运转php顺序,Apache则不必开启。

八、搜寻 cgi.rfc2616_headers = 0 去掉分号并把0改成1。意义是通知php应用甚么样的报头,甚么是报头呢?就像这个:HTTP/1.1

九、搜寻upload_tmp_dir =,将后面的分号删除了并增加门路以下:

upload_tmp_dir = D:\php\temp

意义是上传文件的暂时目次,用来寄存网站上传文件的暂时虚构目次,然而没有会真的上传任何文件正在外面。

十、辨别搜寻如下代码,一行一个,辨别去掉其后面的分号(分号示意正文,没有失效的意义,去掉就失效了):

extension=bz2
extension=curl
extension=gd2
extension=gmp
extension=mbstring
extension=php_mysql.dll
extension=mysqli
extension=pdo_mysql

十一、查找date.timezone =删除了分号并修正为以下这样:

date.timezone = Asia/Shanghai

留意巨细写,意义是格局化工夫,默许应用北京工夫(东8区),这样能够使效劳器工夫以及顺序的工夫分歧,不然可能你发文章显示的不时间会以及实际工夫纷歧样,假如没有设置工夫可能会相差8小时,也能够设置为date.timezone = PRC ,设置时区为中国时区,PRC是中国时区的简称。

以上就是完好的php.ini文件设置装备摆设,真的有3处设置以及网站的平安无关系,因为这个文件普通只会设置一次,之后都没有会去更改,以是有的成绩也不易被发现。

本文来自:https://baijiahao.百度.com/s?id=1660324056472707757&wfr=spider&for=pc

相干保举:

PHP视频教程:https://www.php.cn/course/list/29/type/2.html

以上就是php.ini设置装备摆设中有3处设置不妥会使网站存正在平安成绩的具体内容,更多请存眷资源魔其它相干文章!

标签: php.ini php开发教程 php开发资料 php开发自学

抱歉,评论功能暂时关闭!