XSS 跨站点脚本攻击(Cross Site Scripting),将代码(HTML 和 JavaScript)注入到用户浏览的网页上。伪造链接窃取用户的cookie信息或恶意跳转,防范手段:
- 设置了 HttpOnly 的 Cookie 可以防止 JavaScript 脚本调用,就无法通过 document.cookie 获取用户 Cookie 信息。
- 过滤特殊字符,例如将
<
转义为<
,将>
转义为>
,从而避免 HTML 和 Jascript 代码的运行。
CSRF 跨站点请求伪造(Cross-Site Request Forgery),是攻击者通过一些技术手段欺骗用户的浏览器去访问一个用户已经认证过的网站并执行一些操作,如转账。由于浏览器已经认证过,所以被访问的网站会认为是真正的用户操作而去执行。而这却是在用户无意识的情况下执行的,防范手段:
- 验证 HTTP Referer 字段
- 在访问敏感数据请求时,添加校验 Token
- 输入验证码,因为 CSRF 攻击是在用户无意识的情况下发生的,所以要求用户输入验证码可以让用户知道自己正在做的操作。
XSS 利用的是用户对指定网站的信任,CSRF 利用的是网站对用户浏览器的信任。