参考:
1,XSS 攻击
XSS 攻击全称跨站脚本攻击, 一种经常出现在 web 应用中的计算机安全漏洞, 它允许恶意 Web 用户将代码植入页面中, 这样当别人访问到该页面时也执行了嵌入的代码进行一些操作.
其实在 Web 前端方面, 可以简单的理解为一种 JavaScript 代码注入. 详情例子请看上面的参考链接.
1.1, 防范 XSS 攻击
1, 编码, 就是转义用户的输入, 把用户的输入解读为数据而不是代码
2, 校验, 对用户的输入及请求都进行过滤检查, 如对特殊字符进行过滤, 设置输入域的匹配规则等.
3, 使用 cookie 的 HttpOnly 属性, 加上了这个属性的 cookie 字段, JS 就无法进行读写了.
2,CSRF 攻击
CSRF(跨站请求伪造), 是一种对网站的恶意利用. 其实就是网站中的一些提交行为, 被黑客利用, 你在访问黑客的网站的时候, 进行的操作, 会被操作到其他网站上 (如: 你所使用的网络银行的网站).
比如: CSRF 攻击者在用户已经登录目标网站之后, 诱使用户访问一个攻击页面, 利用目标网站对用户的信任, 以用户身份在攻击页面对目标网站发起伪造用户操作的请求, 达到攻击目的. 比如说你登录了一个普通网站, 然后又打开另一个恶意网站, 那个恶意网站就可能会冒充你的身份来进行一些操作. 具体例子参考:, https://www.cnblogs.com/lovesong/p/5233195.html
2.1, 防范 CSRF 攻击
1, 重要数据交互采用 POST 进行接收, 当然是用 POST 也不是万能的, 伪造一个 form 表单即可破解
2, 使用验证码, 只要是涉及到数据交互就先进行验证码验证, 这个方法可以完全解决 CSRF. 但是出于用户体验考虑, 网站不能给所有的操作都加上验证码. 因此验证码只能作为一种辅助手段, 不能作为主要解决方案.
3, 验证 HTTP Referer 字段, 该字段记录了此次 HTTP 请求的来源地址
4, 为每个表单添加令牌 token 并验证
3,DNS 劫持
DNS 劫持又称域名劫持, 是指在劫持的网络范围内拦截域名解析的请求, 分析请求的域名, 只把在要劫持的域名请求名单之外的请求放行, 否则返回假的 IP 地址或者什么都不做使请求失去响应, 其效果就是对特定的网络不能访问或访问的是假网址.
很多的时候, 我们的网站不是直接就访问到我们的服务器上的, 中间会经过很多层代理. 如果在某一个环节, 数据被中间代理层的劫持者所截获, 他们就能获取到使用你网站的用户的密码等保密数据. 比如说, 我们经常会在各种饭馆里面连一些 Wi-Fi, 此时 Wi-Fi 就是中间代理, 如果这个 Wi-Fi 是黑客所建立的热点 Wi-Fi, 那么黑客就可以截获该用户收发的所有数据. 所以建议网站都使用 https 进行加密, 这样就算网站的数据能被拿到, 黑客也无法解开.
来源: http://www.bubuko.com/infodetail-2974279.html