![](https://i-blog.csdnimg.cn/blog_migrate/633294ac01c6c00d0709ea7979b931ee.png)
该死的,但是安全性很难。 需求做什么并不总是很明显,而良好安全性的收益充其量是模糊的。 当它不在我们的优先列表中时,谁会感到惊讶?
此安全检查表旨在为开发人员提供可以遵循的PHP安全最佳实践列表,以帮助提高其代码的安全性。
这是一些PHP安全检查表项目的一部分( 在 此处 阅读完整的检查表 )
筛选和验证所有数据
无论数据来自何处,无论是配置文件,服务器环境,GET和POST还是其他任何地方,都不信任它。 过滤并验证! 通过使用可用的库之一(例如zend-inputfilter)来执行此操作。
阅读更多:
使用参数化查询
为避免SQL注入攻击,请勿将SQL字符串与外部数据连接或插入。 使用参数化查询代替预备语句。 这些可以与供应商特定的库一起使用,也可以与PDO一起使用。
学到更多:
设置open_basedir
open_basedir
指令限制了PHP可以从open_basedir
目录及更低版本访问文件系统的文件。 无法访问该目录之外的文件或目录。 这样,如果恶意用户尝试访问敏感文件(例如/etc/passwd
,则访问将被拒绝。
阅读更多:
检查您的SSL / TLS配置
通过定期扫描服务器,确保服务器的SSL / TLS配置是最新的且配置正确,并且未使用弱密码,TLS的过时版本,没有弱密钥的有效安全证书等。
阅读更多:
使用TLS或公钥连接到远程服务
当访问任何数据库,服务器或远程服务(例如Redis,Beanstalkd或Memcached)时,请始终使用TLS或公钥进行访问。 这样做可以确保仅允许经过身份验证的访问,并且对请求和响应进行加密,并且不会明文传输数据。
阅读更多:
不要在标题中发送敏感信息
默认情况下,PHP将在HTTP标头中设置其版本号。 一些框架可能也做同样的事情。
阅读更多:
记录所有事情
无论您是登录失败的登录尝试,密码重置还是调试信息,都请确保您正在登录,并使用易于使用且成熟的软件包,例如Monolog。
阅读更多:
制定内容安全政策
无论您是一个页面,静态网站,大型静态网站还是复杂的基于Web的应用程序,都应实施内容安全策略(CSP)。 它有助于减轻一系列常见的攻击媒介,例如XSS。
阅读更多:
想要更多? 在此处 查看完整的清单
最初在 www.sqreen.io上 发布 。
From: https://hackernoon.com/the-ultimate-php-security-checklist-eec9895f2fa3