Web安全注意事项总览

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。

业务安全:

  • 视具体业务情况做适当的校验