平常做项目的时候,遇到过哪些安全漏洞?security

(1)form 表单提交前加上校验,防止 xss 攻击。

为防止 xss 攻击,表单的每个字段提交需要做校验或者编码过滤。校验的话可以用正则,比如校验手机号或者邮箱之类的。编码过滤的话,提交前需要对提交的内容进行编码过滤,防止特殊的标签之类的提交到后台。比如用户输入 ‘’ 这类的脚本或者 html 标签之类的。要过滤掉,防止提交到后台。

(2)限制 URL 访问,越权访问。

  1. 在公共模块增加校验方式,查看是否具有对应权限。例如,每个客户只能查看和修改自己的信息,在 url 地址栏参数中,带的参数有序列号之类的,攻击者可能会想到,客户的序列号是按照顺序往下排的,要是按顺序加一减一是不是就可能访问到别人的账号(水平越权)。还有一种是不同级别的登陆者登陆所拥有的功能权限不同,低权限者可能访问高权限者的账号,从而使用原本它不具有的功能,这种也是越权漏洞,属于垂直越权。
  2. 监听路由跳转,在路由跳转之前,增加校验(路由导航守卫)。
  3. 和后台联调,将对应的信息存入 cookie,在数据访问时进行对比。

(3)文件上传漏洞。例如用户上传任意类型的文件可能会让攻击者注入危险内容或恶意代码,并在服务器上运行。

解决:

  1. 严格限制用户上传的文件后缀以及文件类型。
  2. 定义上传文件类型白名单,只允许白名单里面类型的文件上传。
  3. 文件上传目录禁止执行脚本解析,避免攻击者进行二次攻击。