跨站脚本( cross site script)XSS
- 攻击方式
- 通过正常途径(评论输入、表单提交、富文本编辑器)注入拼接的恶意脚本,窃取用户信息
- 解决方案
- 站点首页请求设置 content-security-policy响应头,规定哪些脚本可以被执行
- 对用户输入内容进行转义、防止恶意脚本被执行
- 响应的cookies设置httpOnly属性,规定脚本不能读取用户cookies
跨站请求伪造(cross site request forgery)CSRF
- 攻击方式
- 用户登录A保存cookies,然后引导用户点访问攻击者提供的B站点,在B站点内访问A
- 这时发送的请求就会携带A站点的cookies
- 解决方案
- 可以对 Cookie 设置 SameSite 属性。该属性表示 Cookie 不随着跨域请求发送,可以很大程度减少 CSRF 的攻击,但是该属性目 前并不是所有浏览器都兼容。
- 服务端通过检查http请求头头referer的值是不是这个本站,来判断是不是CSRF攻击。
- 用户登录时生成一个token或者sessionId,然后返回给用户,每次向服务端发起请求时请求头携带该令牌,服务端验证令牌是否存在且有效才放行该请求。
- 为关键操作添加验证码校验。
网友评论