PHP代码审计(一)常见ini配置

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介: 我这里大概看了一下常见的重要的php.ini配置。具体详细配置请参照官方网站:

我这里大概看了一下常见的重要的php.ini配置。

具体详细配置请参照官方网站:

www.php.net/

1:启用全部变量

ini

复制代码

Register_globals = on;

这个设置的作用是关闭自动注册的全局变量。

如果设置为on的话,PHP会自动将超全局变量(GET,_GET,GET,_POST,SESSION,_SESSION,SESSION,_REQUEST)数组中的变量注册为变量,例如:POST[‘username’]会直接被注册为_POST[‘username’] 会直接被注册为 POST[username]会直接被注册为username.。

虽然方便了调用,但是会有以下几个问题:

(1):不知道变量是从哪里来的,到底是POST,还是_POST,还是POST,还是_SESSION中的?代码不方便阅读。

(2):变量之间相互覆盖,引起不必要的麻烦,而且还不容易找。

(3):安全问题,所以要设置为off

2:短标签

ini

复制代码

Short_open_tag = on

这个设置决定了在书写PHP代码的时候,是否允许使用  这种形式。

如果禁用,在书写PHP代码的时候就需要使用的形式。

3:设置上传及最大上传文件大小

ini

复制代码

File_uploads = on
Upload_max_filesize = 8M

4:文件上传临时目录

makefile

复制代码

Upload_tmp_dir =

上传临时目录,需要可写权限(linux系统),如果不设置,则默认系统目录linux:/tmp

Windows:c:windows emp

5:用户访问目录限制

ini

复制代码

Open_basedir = ./tmp/

Open_basedir能控制脚本访问指定目录,这样能避免PHP脚本访问不应该访问的目录及文件,一定程度上限制了PHPshell对程序的危害,一般我们都设置当前程序的脚本只能访问当前程序所在的目录及/tmp/目录,有效防止木马跨站攻击。

6:错误信息控制

ini

复制代码

Display_error = on

是否将错误信息作为输出的一部分,站点发布之后应该关闭这个功能,丢人是一回事,另外主要是暴露信息了就不好了,调试的时候当然要打开了,不然就啥也看不到了。

7:设置错误报告级别

ini

复制代码

Error_reporting = E_ALL

这个设置是将错误级别设置为最高,可以显示所有问题,方便差错,也有利于写出高质量的代码,一般推荐使用E_ALL或者E_STRICT,即所有级别。

8:错误日志:

javascript

复制代码

Error_log =

错误日志的位置,必须对web用户可写入,如果不定义,则默认写入到web服务器的错误日志中去。

ini

复制代码

Log_errors = on

如上边所说,建议将错误日志输入到文件中去,而不是输出到前端。

ini

复制代码

Log_errors_max_length = 1024

错误日志相关信息最大长度,设置0则表示无限长度。

9:是否允许打开远程文件

ini

复制代码

Allow_url_fopen = on

本选项激活了URL形式的fopen封装协议使得可以访问URL对象例如文件,默认封装协议提供用ftp和http协议来访问远程文件,一些扩展库例如zlib可能会注册更多的封装协议。

10:是否包含远程文件

Allow_url_include = off

本选项激活允许include,include_once,require,require_once等函数使用URL形式的fopen封装协议,简单来说就是可以包含远程文件

以上大概就是php.ini中常见设置的配置,可能需要注意一下。

有好的建议,请在下方输入你的评论。

欢迎访问个人博客guanchao.site

欢迎访问我的小程序:打开微信->发现->小程序->搜索“时间里的”

相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
目录
相关文章
|
3月前
|
关系型数据库 MySQL API
|
2月前
|
存储 运维 Serverless
函数计算产品使用问题之在YAML文件中配置了环境变量,但在PHP代码中无法读取到这些环境变量,是什么原因
函数计算产品作为一种事件驱动的全托管计算服务,让用户能够专注于业务逻辑的编写,而无需关心底层服务器的管理与运维。你可以有效地利用函数计算产品来支撑各类应用场景,从简单的数据处理到复杂的业务逻辑,实现快速、高效、低成本的云上部署与运维。以下是一些关于使用函数计算产品的合集和要点,帮助你更好地理解和应用这一服务。
|
5天前
|
JSON PHP Apache
[GFCTF 2021]Baby_Web(CVE-2021-41773) 从一道题入门PHP代码审计 (保姆级)
[GFCTF 2021]Baby_Web(CVE-2021-41773) 从一道题入门PHP代码审计 (保姆级)
8 1
|
12天前
|
SQL 安全 API
PHP代码审计示例(一)——淡然点图标系统SQL注入漏洞审计
PHP代码审计示例(一)——淡然点图标系统SQL注入漏洞审计
27 4
|
11天前
|
前端开发 网络安全 PHP
PHP代码审计之MVC与ThinkPHP简介
PHP代码审计之MVC与ThinkPHP简介
20 2
|
11天前
|
监控 安全 网络安全
PHP代码审计之简单思路方法
PHP代码审计之简单思路方法
31 1
|
2月前
|
SQL 监控 安全
代码审计-PHP原生开发篇&SQL注入&数据库监控&正则搜索&文件定位&静态分析
代码审计-PHP原生开发篇&SQL注入&数据库监控&正则搜索&文件定位&静态分析
|
2月前
|
网络协议 Unix 应用服务中间件
PHP-FPM 性能配置优化
该文介绍了PHP-FPM的性能配置优化,包括其工作原理和与Nginx的配合。FastCGI是一种提高CGI效率的协议,PHP-FPM是它的管理器。文章对比了CGI和FastCGI的区别,指出FastCGI更高效,能处理更多请求。接着讨论了php-fpm的进程数调优,包括ondemand(按需创建)、dynamic(动态创建)和static(固定数量)三种模式,以及各自适用场景和参数配置。
64 0
PHP-FPM 性能配置优化
|
2月前
|
运维 JavaScript Serverless
Serverless 应用引擎产品使用合集之php工程已经部署,可以正常访问数据库,静态资源样式无法正常加载,要怎么配置
阿里云Serverless 应用引擎(SAE)提供了完整的微服务应用生命周期管理能力,包括应用部署、服务治理、开发运维、资源管理等功能,并通过扩展功能支持多环境管理、API Gateway、事件驱动等高级应用场景,帮助企业快速构建、部署、运维和扩展微服务架构,实现Serverless化的应用部署与运维模式。以下是对SAE产品使用合集的概述,包括应用管理、服务治理、开发运维、资源管理等方面。
Serverless 应用引擎产品使用合集之php工程已经部署,可以正常访问数据库,静态资源样式无法正常加载,要怎么配置
|
2月前
|
Linux PHP Windows
蓝易云 - php环境变量的配置步骤
以上就是配置PHP环境变量的步骤,希望对你有所帮助。
27 0