XSS(跨站脚本攻击)
恶意的注入 html 代码,其他用户访问时,会被执行。
特点:能注入恶意的 HTML/JavaScript 代码到用户浏览的网页上,从而达到 Cookie 资料窃取、会话劫持、钓鱼欺骗等攻击。
防御手段:
- 浏览器禁止页面的 JS 访问带有 HttpOnly 属性的 Cookie
用来认证的 cookies 设置为 httponly - 前后端都进行 输入格式 检查
检查用户输入的数据中是否包含一些特殊字符,如<、>、’、”等,如果发现存在特殊字符,则将这些字符过滤或者编码 - 通过编码转义的方式进行输出检查
CSRF(跨站请求伪造攻击)
特点:重要操作的所有参数都是可以被攻击者猜测到的。攻击者预测出URL的所有参数与参数值,才能成功地构造一个伪造的请求。
防御手段:(实践中常用第一种)
- token验证机制,比如请求数据字段中添加一个token,响应请求时校验其有效性
- 用户操作限制,比如验证码(繁琐,用户体验差)
- 请求来源限制,比如限制 HTTP Referer 才能完成操作(防御效果相比较差)