XSS攻击
xss是一种跨站脚本攻击,一种常见的web安全漏洞,它允许攻击者将恶意代码植入到提供给其它用户使用的页面中。
xss分两种:
1存储型xss将恶意的前端代码存储在数据库中,然后下次访问的时候就会显示出来,最典型的就是留言板xss
2DOM XSS攻击不同于反射型XSS和存储型XSS,DOM XSS代码不需要服务器端的解析响应的直接参与,而是通过浏览器端的DOM解析。典型的就是恶意输出数据。
XSS危害
- 通过document.cookie盗取cookie
- 使用js或css破坏页面正常的结构与样式
- 流量劫持(通过访问某段具有window.location.href定位到其他页面)
- Dos攻击:利用合理的客户端请求来占用过多的服务器资源,从而使合法用户无法得到服务器响应。
- 利用iframe、frame、XMLHttpRequest或上述Flash等方式,以(被攻击)用户的身份执行一些管理动作,或执行一些一般的如发微博、加好友、发私信等操作。
- 利用可被攻击的域受到其他域信任的特点,以受信任来源的身份请求一些平时不允许的操作,如进行不当的投票活动。
XSS防御
从以上的反射型和DOM XSS攻击可以看出,我们不能原样的将用户输入的数据直接存到服务器,需要对数据进行一些处理。以上的代码出现的一些问题如下1
-
没有过滤危险的DOM节点。如具有执行脚本能力的script, 具有显示广告和色情图片的img, 具有改变样式的link, style, 具有内嵌页面的iframe, frame等元素节点。
- 没有过滤危险的属性节点。如事件, style, src, href等
- 没有对cookie设置httpOnly。
如何预防SQL注入
- 在Java中,我们可以使用预编译语句(PreparedStatement),这样的话即使我们使用 SQL语句伪造成参数,到了服务端的时候,这个伪造 SQL语句的参数也只是简单的字符,并不能起到攻击的作用。
- 对进入数据库的特殊字符(
'"\尖括号&*;等)进行转义处理,或编码转换。 - 在应用发布之前建议使用专业的SQL注入检测工具进行检测,以及时修补被发现的SQL注入漏洞。网上有很多这方面的开源工具,例如sqlmap、SQLninja等。
- 避免网站打印出SQL错误信息,比如类型错误、字段不匹配等,把代码里的SQL语句暴露出来,以防止攻击者利用这些错误信息进行SQL注入。
在上图展示中,使用了Java JDBC中的PreparedStatement预编译预防SQL注入,可以看到将所有输入都作为了字符串,避免执行恶意SQL
DDOS攻击(关键是发出大量请求,最后令服务器崩溃)
DDoS 防御产品的核心是检测技术和清洗技术。检测技术就是检测网站是否正在遭受 DDoS 攻击,而清洗技术就是清洗掉异常流量。而检测技术的核心在于对业务深刻的理解,才能快速精确判断出是否真的发生了 DDoS 攻击。清洗技术对检测来讲,不同的业务场景下要求的粒度不一样。
CSRF攻击(关键是借助本地cookie进行认证,伪造发送请求)。

被折叠的 条评论
为什么被折叠?



