跨站脚本与跨站请求伪造

跨站脚本( cross site script)XSS

  • 攻击方式
  1. 通过正常途径(评论输入、表单提交、富文本编辑器)注入拼接的恶意脚本,窃取用户信息
  • 解决方案
  1. 站点首页请求设置 content-security-policy响应头,规定哪些脚本可以被执行
  2. 对用户输入内容进行转义、防止恶意脚本被执行
  3. 响应的cookies设置httpOnly属性,规定脚本不能读取用户cookies

跨站请求伪造(cross site request forgery)CSRF

  • 攻击方式
  1. 用户登录A保存cookies,然后引导用户点访问攻击者提供的B站点,在B站点内访问A
  2. 这时发送的请求就会携带A站点的cookies
  • 解决方案
  1. 可以对 Cookie 设置 SameSite 属性。该属性表示 Cookie 不随着跨域请求发送,可以很大程度减少 CSRF 的攻击,但是该属性目 前并不是所有浏览器都兼容。
  2. 服务端通过检查http请求头头referer的值是不是这个本站,来判断是不是CSRF攻击。
  3. 用户登录时生成一个token或者sessionId,然后返回给用户,每次向服务端发起请求时请求头携带该令牌,服务端验证令牌是否存在且有效才放行该请求。
  4. 为关键操作添加验证码校验。

你可能感兴趣的:(跨站脚本与跨站请求伪造)