所有的PHP项目都必须配置环境,不论是使用集成环境还是自己手动搭建,可能很少有人关注过php.ini里面配置的这些东西到底有什么作用,很多站长在设置php.ini文件时,都是网上找一个教程,然后人家说哪里增加哪里删除按步骤进行,但是这里面的设置还真有两处会引起网站安全问题。

有人会说就一个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文件,下面是完整的配置过程。

1、将short_open_tag = Off改为

short_open_tag = On

这样修改的作用是一些网站的模板文件中使用了如 ?>这样的php代码,可保证代码可以正常执行,在ecshop、dedecms和WordPress等模板中也都常见于这类代码。

2、将expose_php = On,将其改为

expose_php = Off

作用是出于网站安全,禁止显示php的版本号,防止别人针对特定php版本漏洞攻击网站。有的网站你用站长工具一查,使用的是什么web服务器、PHP版本是多少都一目了然,对于特定的PHP版本漏洞,hiker当然是知道的,隐藏版本号虽不能说解决了问题,但是会给hiker增加难度。

3、查找如下代码

; On windows:

; extension_dir = "ext"

将这里的extension_dir前面的分号去掉,并且把ext修改为PHP的安装路径,如下所示。注意斜杠不要写反了,因为我把PHP安装在D盘的。

extension_dir = "D:\php\ext"

4、查找max_execution_time = 30,将数字30修改为3001200。作用是每个脚本执行的最大时间,默认是30秒,解决可能因为网速和服务器的地址(如国外主机)可能会总是连接超时的问题。

5、搜索;cgi.force_redirect = 1,把前面的分号去掉,并把数字1改为0cgi.force_redirect = 0的意思就是关闭重定向执行php文件,出于安全考虑防止别人上传木马执行如:你的网站url/as=你的网站url/sdf/muma.php,这样的重定向PHP文件是可执行的,将这个配置改为0之后这类型的重定向PHP文件就不会执行了。

这也是为什么有的网站总是被挂马的原因,这样修改之后即便是网站前台存在安全漏洞,被hiker上传了木马文件,通过这样的方式木马文件不会运行,所以没有用。

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

7、查找代码fastcgi.impersonate = 1将前面的分号去掉。作用是iisnginx使用的是fastcgi方式解析php文件,不开启就不能运行php程序,Apache则不用开启。

8、搜索 cgi.rfc2616_headers = 0 去掉分号并把0改为1。意思是告诉php使用什么样的报头,什么是报头呢?就像这个:HTTP/1.1

9、搜索upload_tmp_dir =,将前面的分号删除并添加路径如下:

upload_tmp_dir = D:\php\temp

意思是上传文件的临时目录,用来存放网站上传文件的临时虚拟目录,但是不会真的上传任何文件在里面。

10、分别搜索以下代码,一行一个,分别去掉其前面的分号(分号表示注释,不生效的意思,去掉就生效了):

extension=bz2

extension=curl

extension=gd2

extension=gmp

extension=mbstring

extension=php_mysql.dll

extension=mysqli

extension=pdo_mysql

11、查找date.timezone =删除分号并修改为如下这样:

date.timezone = Asia/Shanghai

注意大小写,意思是格式化时间,默认使用北京时间(东8区),这样可以使服务器时间和程序的时间一致,否则可能你发文章显示的时时间会和实际时间不一样,如果不设置时间可能会相差8小时,也可以设置为date.timezone = PRC ,设置时区为中国时区,PRC是中国时区的简称。

以上就是完整的php.ini文件配置,真的有3处设置和网站的安全有关系,由于这个文件一般只会设置一次,之后都不会去更改,所以有的问题也不容易被发现。

dedecms怎么改php版本_php.ini配置中有3处设置不当会使网站存在安全问题相关推荐

  1. php配置出问题,php.ini配置中有3处设置可能导致网站安全出问题

    php.ini配置中有3处设置可能导致网站安全出问题 发布时间:2020-03-24 10:14:37 来源:亿速云 阅读:828 作者:小新 php.ini配置中有3处设置可能导致网站安全出问题.那 ...

  2. dedecms怎么改php版本_PHP程序员进阶之路

    PHP开发工程师处在初级.中级和高级阶段需要掌握的技能也不同,本文分享PHP工程师处在不同阶段下需要掌握的技能. PHP初级开发工程师 PHP初级开发工程师需要掌握的技能 1. 走进PHP的世界 PH ...

  3. dedecms怎么改php版本_玩转Termux:手把手教你在手机上安装php与nginx!

    大家好,这里是 「手机编程」,我是作者:舞剑,记得「关注我」 今天是Termux系列第三节,我来讲讲怎么安装 PHP 与 Mysql,然后用 Termux 搭建一个网站. PHP 全球有几乎95%的网 ...

  4. dedecms怎么改php版本_Linux下如何安装DedeCMS?

    Linux下如何安装DedeCMS? 随着Linux服务器应用范围越来越广泛,国内很多站长也开始使用它作为自己的Web服务器,本篇就来介绍如何在Linux系统环境下安装配置DedeCMS系统. 推荐学 ...

  5. dedecms怎么改php版本_一键建站系列教程(宝塔面板+DeDeCMS)

    前言: 2018年过去了,拖更几天今天才有空,上来写个宝塔面板+dedecms建站教程. 宝塔面板/服务器购买及配置/域名购买及配置/宝塔面板配置等移步上篇文章(https://www.bbxiaoz ...

  6. dedecms怎么改php版本_王者荣耀:管你版本怎么改,这几位峡谷常青树始终屹立不倒...

    作为MOBA对抗类游戏,王者荣耀的版本更迭一直很快,这使得英雄热度更迭也很快.许多此版本很强势热门的英雄,下一次版本更新直接被削一大截,沦为下水道英雄.玩家口中的一代版本一代神由此而来.但有些英雄无论 ...

  7. mysql5.7.17免安装版_MySQL 5.7.17 免安装版本的安装配置

    MYSQL版本:MySQL Community Server 5.7.17,免安装版本,具体内容如下 下载地址:https://dev.mysql.com/downloads/mysql/ 电脑系统: ...

  8. mysql5.718免安装教程_mysql5.7.18版本免安装配置教程

    MySQL分为安装版和免安装版 安装版后缀是msi,免安装版后缀是zip,免安装版直接解压出来配置一下就可以用. 安装版本的会写入系统注册表,在安装过程中会提示配置. 免安装的需要自己手动配置,不写入 ...

  9. [MySQL免安装版本] 下载、配置、启动、密码修改

    今天给大家带来一篇关于MySQL数据库免安装版本的配置教程,那么过程比较简单直接上干货. 目录 一.下载MySQL免安装版本 二.配置MySQL 三.启动MySQL 四.使用客户端连接MySQL 五. ...

最新文章

  1. CCNP学习笔记(6)
  2. 一个可以显示具体时间的日历控件应用
  3. mysql5.7rpm安装 force_mysql5.7.27离线安装(基于centos7 ,通过rpm安装)
  4. Mac下安装的MySQL root账号无法登陆用户解决
  5. 前端学习(1427):ajax封装二
  6. linux启用网卡vlan,LINUX (UBUNTU) 双网卡多VLAN的Server 配置
  7. 酷炫好玩又实用 | 可能是CES上六个最值得买的电子产品
  8. Yii2中自带分页类实现分页
  9. 最新:斐讯K3千兆无线路由器刷官改版固件的详细图文教程
  10. MFC DLL 不能正确调用的问题 + AFX_MANAGE_STATE(AfxGetStaticModuleState());
  11. 【电磁】基于Matlab模拟电偶极子电磁场附GUI界面
  12. Android图片处理Glide 4 介绍
  13. java 二嗨租车项目_Java第二季租车系统参考
  14. Win7 获取管理员权限
  15. 真实感受一下县比省大不包邮,省市区乡镇多级数据重装上阵
  16. 怎么才能戒烟最好的方法,这样戒烟最有效
  17. Scratch2舞台各个部分及积木的介绍
  18. 软件项目管理期末复习--软件需求
  19. 王桂林 C++基础与提高 练习题——string数组
  20. 2023苹果内核JAVA原生影视双端修改版源码+附安装教程

热门文章

  1. Puppeteer -headless Chrome 的 Node.js API
  2. mysql5.7不区分大小写_转载:mysql5.7设置不区分大小写
  3. 【现代机器人学】基于指数积的机械臂正运动学
  4. Java中12 种 Spring 常用注解,必须记住!
  5. docker 代理_利用Docker容器实现代理转发和数据备份
  6. .net core websocket
  7. BZOJ.3698.XWW的难题(有源汇上下界最大流ISAP)
  8. 软件测试 第三次作业
  9. Silverlight 结合WCF Duplex Service聊天程序出炉
  10. android根据ip获取查询省份,通过IP地址获取省份城市位置信息