XSS
跨站脚本攻击
向正常网站的表单中注入恶意脚本代码,窃取网站私有内容,比如窃取cookies、localstorage、sessionstorage的内容。
防御策略
设置cookies为HttpOnly 使cookie不可被js读取操作。
CSRF/XSRF
跨站请求伪造
诱导用户在恶意网站内点击链接,链接请求正常网站的功能业务,会自动携带正常网站的cookies,在用户不知情的情况下完成一些操作。
防御策略
- 健强服务端逻辑,严格restful风格,可以防御一些低端的攻击。
- 利用请求头中的refer内容,refer是浏览器在发起请求是设置的当前请求来源网站的信息,可以防御绝大部分的攻击。
- 每次请求需要用户填写验证码,可以防御所有攻击,当然这种方式体验太差。
- x-xsrf-token,在发起请求前由前端从cookie中读取一个随机token,这个token可能是之前种下的,写到header中,因为只有同一个域下的js才能访问cookie(未设置httponly的),可以防御所有攻击。
CORS
Cross-origin resource sharing 跨域资源共享
- 对于客户端,我们还是正常使用xhr对象发送ajax请求。
唯一需要注意的是,我们需要设置我们的xhr属性