常见的网络攻击方式有两种:XSS和CSRF
XSS(跨站脚本攻击)
简单描述:攻击者恶意注入一些HTML/JavaScript代码到用户浏览的网页上,从而达到Cookie资料窃取、会话劫持、钓鱼欺骗等攻击。
防御手段:
- 设置HttpOnly,浏览器禁止页面的JS访问带有HttpOnly属性的Cookie
- 对输入内容做格式检查,类似“白名单”,可以让一些基于特殊字符的攻击失效。在客户端JS和服务器端代码中实现相同的输入检查(服务器端必须有)
- 在变量输出到html页面时,可以使用编码或转义的方式来防御XSS攻击
CSRF(跨站请求伪造)
简单描述:攻击者盗用了你的身份,以你的名义发送恶意请求。CSRF能够做的事情包括:以你名义发送邮件,发消息,盗取你的账号,甚至于购买商品,虚拟货币转账…造成的问题包括:个人隐私泄露以及财产安全。
防御手段:
- 验证 HTTP Referer 字段
- 在请求地址中添加 token 并验证
- 在 HTTP 头中自定义属性并验证