漫谈前端安全
发布于 6 年前
约 1 分钟阅读
XSS 和 CSRF 是前端中常见的攻击。
XSS
XSS ( Cross Site Scripting ) 跨站脚本攻击 就是浏览器解析了用户恶意输入的内容,导致页面出现问题。例如:评论中注入脚本弹出弹窗,那么其它用户打开的时候就会弹出弹窗,干扰网页正常运行。
XSS 主要分成两个过程:注入,解析。有些用户输入的信息还会存储到数据库中,就被称为存储型 XSS 攻击。而没有存储过程的攻击被称为反射型 XSS 攻击。
转义
防范 XSS 攻击,主要是如何正确解析。常见的解决方案就是转义,例如将 <
转义为 <
。这样最终不会去执行脚本,而是显示为文本。
CSP(Content Security Policy)
另外还有一种方案就是利用浏览器内容安全策略。CSP 以白名单的机制来过滤非法的资源,同时禁止了内嵌脚本,以及 eval 动态执行函数。
CSRF
CSRF (Cross-site request forgery)跨站请求伪造主要是伪造一个请求,用户点击之后即触发该请求,从而产生用户意料外的结果。当该请求携带了用户凭证,那么该结果就可能造成危害。
例如:cookie 携带了用户的 sessionid,在请求的时候会泄漏或被攻击者直接利用。
token
在表单提交的时候可以携带一个服务器生成的 token,服务器校验 token 来校验是否预期的请求。
Referer
验证 referer 来判断请求是否是第三方网站发起。
请求头
将用户凭证存放在请求头的 Authorization 字段中,服务器验证请求头字段。这样默认情况下用户凭证不会被携带上,从而避免泄漏。
- XSS
- 转义
- CSP(Content Security Policy)
- CSRF
- token
- Referer
- 请求头
除特别注明外,所有文章均采用 Creative Commons BY-NC-ND 4.0(自由转载-保持署名-非商用-禁止演绎)协议 发布