Windows系统在PHP环境安装PHP文件信息模块启用php_fileinfo扩展

操作系统 / 14 次阅读

PHP的fileinfo扩展提供了用于检测文件类型和编码的功能,比如上传文件服务器端要判断这个文件是不是图片/PDF,或者是不是某个恶意脚本。

为什么要使用php_fileinfo扩展

部分程序员可能会依赖用户上传时浏览器提供的MIME类型(比如$_FILES['file']['type']),或者通过文件扩展名来判断文件类型,但浏览器给的MIME类型可以伪造,而文件扩展名也几乎是可以随意更改,所以并不安全。

php_fileinfo扩展则是直接读取文件的“魔术字节”(magic bytes),即文件头部的特定二进制序列,这些序列能准确无误地获取文件的真实类型和编码,即使把恶意脚本命名为image.jpg,这个扩展也能识别这个其实是可执行文件或者PHP脚本,而不是图片。

因此有上传下载功能的网站开启php_fileinfo扩展可以显著提升安全性,避免伪装文件的攻击。

启用php_fileinfo扩展方法

Windows系统的PHP环境启用php_fileinfo扩展也比较简单。

1、确认php_fileinfo.dllfileinfo.so存在于PHP安装目录的ext文件夹。(extension_dir的扩展路径)

2、在PHP安装目录下找到并编辑php.ini配置文件,找到

;extension=fileinfo

把前面的冒号去掉取消注释,改为

extension=fileinfo

提醒:要确保extension_dir的扩展路径正确,否则启用了也找不到依赖运行的dll文件。

保存文件后,以管理员身份打开命令提示符(CMD),进入D:\Server\Apache24\bin目录执行重启Apache服务器的命令:

./httpd.exe -k restart

提醒:进入自己服务器Apache的实际安装路径。