1. 保持PHP版本最新。
2. 不显示网站的错误信息和潜在的可能泄漏信息,把display_errors = 设成off。
3. ini 选项设置:
force_redirect 设为 on
allow_url_fopen off
allow_url_include off
display_errors off
expose_php off
group_id 100
magic_quotes_gpc off
memory_limit 8388608
post_max_size 262144
user_id 100
4. 文件或文件夹不要起谁都能猜得到的名字。
5. 不要相信用户的任何输入;
过滤输入,中断输出。
6. 有数字的SQL语句中,要对数字进行强制类型转换。
7. 当使用session_regenerate_id()的时候,最好把旧的session id删除:
session_regenerate_id(
true);
8. 每次都审查用户输入。
9. 把敏感数据和代码放到WEB目录之外。
10. 不要使用用户输入到表单中的信息盲目发送邮件。
11. 最少权限原则。
12. 慎用eval()。
13. 用 PHPSecInfo 查一下你的环境变量。
14. 把cookie使用量降到最低。
15. 不要忘记清除临时测试文件。
16. 确保你的开发框架经常更新。
17. 安全是一种尺度,而非一种特征。
安全要与费用、可用性作一平衡。
安全必须是设计的一部分。
18. 不要用黑名单过滤上传文件类型。
19. 最安全的应用程序是与外界不相连接的。
20. 参考书:
Essential PHP Security, Pro PHP Security,
Professional PHP5 Security, php|architect's Guide to PHP Security