推荐:《PHP视频教程》
你好,PHP 开发人员。 在这篇文章中,我将尝试为你提供一些可以提高 PHP 应用程序安全性的具体步骤。我关注的是 PHP 配置本身,所以我们不会讨论 SQL 注入、HTTPS 或其他与 PHP 无关的问题。
我将使用我的docker-entrypoint.sh
脚本中的 bash 行来说明示例,但当然你可以将其应用于非 docker 环境。
Sessions
使用较长的 Session ID 长度
增加会话 id 长度会使攻击者更难猜到(通过暴力或更有可能的侧通道攻击)。长度可以介于22 到 256 个字符之间。默认值为 32。
sed -i -e "s/session.sid_length = 26/session.sid_length = 42/" /etc/php7/php.ini
(别问我为什么在 Alpine Linux 上是26…)
你可能还想查看 session.sid_bits_per_character。
使用具有限制权限的自定义会话保存路径
只有 nginx/php 需要访问会话,所以让我们将它们放在一个具有受限权限的特殊文件夹中。
sed -i -e "s:;session.save_path = "/tmp":session.save_path = "/sessions":" /etc/php7/php.ini mkdir -p /sessions chown nginx:nginx /sessions chmod 700 /sessions
当然,如果你使用 Redis 处理会话,你并不需要关心这一部分;)
安全会话 Cookie