Web安全可以分为:系统/服务器安全,DB安全,代码安全,业务安全,登录安全等
服务器安全:
php-fpm的启动用户的设置,不要以root启动,master就root,worker不能是root,一般为nobody或www。php-fpm.conf配置文件里设置
mysql的启动用户
nginx的启动用户,非root启动,一般用nobody启动
上传目录和下载目录的权限的设置,上传文件的文件名校验等
php.ini文件,disable_functions设置关闭危险函数,关闭注册全局变量(register_globals off),magic_quotes_gpc on 防止sql注入,display_errors=off 关闭错误显示
脚本,webroot等目录的权限设置
线上debug关掉
open_basedir设置,避免php脚本访问不应该访问的文件
服务器的安全组入站规则,iptable设置
DB安全:
账号密码密文存储
web账号,运维账号,值班账号分开
每个账号授权的host 设置适宜,不能扩大
登录安全:
校验码+噪点
登录密码的复杂性校验,字母+数字+大小写+非连续数字
多次登录失败(冻结账号)
离职的账号不能登录(如果内部平台的话,可以考虑)
三个月无feed的账号可以冻结(如果是内部平台的话,可以考虑)
代码安全:
注意人为输入的内容输出到页面的需要clean,防止xss注入
注意sql注入,连接sql时,要对人为输入的内容clean。
业务安全:
视具体业务情况做适当的校验
转载自:
https://www.clarkhu.net/?p=600