PHP安全性:限制脚本使用的资源
时间:2020-01-09 10:43:00 来源:igfitidea点击:
如何控制和限制php脚本,例如每个脚本的最大执行时间和上传文件的大小?
PHP在php.ini文件中支持以下资源限制指令:
- max_execution_time:每个脚本的最大执行时间,以秒为单位。
- max_input_time:每个脚本可用于分析请求数据的最长时间。
- memory_limit:脚本可能消耗的最大内存量。
编辑/etc/php.ini或者/etc/php/7.0/fpm/php.ini(fpm-php 7配置),执行:
# vi /etc/php.ini
或者
# vi /etc/php/7.0/fpm/php.ini
设置值如下:
max_execution_time = 30 max_input_time = 30 memory_limit = 40M
设置PHP将接受的POST数据的最大大小:
post_max_size = 8M
设置上传文件的最大允许大小:
upload_max_filesize = 2M
打开或者关闭HTTP文件上传(除非必要,否则禁止上传):
file_uploads = Off
确保使用以下命令正确重定向PHP:
cgi.force_redirect = 0
使用以下命令将文件请求禁用为fopen调用
allow_url_fopen = Off
开启SQL安全模式:
sql.safe_mode = On
如果设置sql.safe_mode,则还需要设置以下内容:
mysqli.default_host = "192.168.1.252" mysqli.default_port = "3306" mysqli.default_user = "userNameHere" mysqli.default_pw = "PasswordHere"
现在,您的Perl/Php/Python脚本可以直接连接到数据库,而无需传递主机,用户和密码信息。
接下来,重新加载Apache Web服务器:
# service httpd reload
或者重新加载lighttpd Web服务器:
# /etc/init.d/lighttpd reload
或者重新加载php7.0-fpm:
# /etc/init.d/php7.0-fpm reload
或者使用systemctl命令:
# systemctl reload php7.0-fpm
请注意,任何超过这些限制的尝试都会导致500服务器错误。