浅析:XSS攻击、SQL注入攻击和CSRF攻击

1、XSS(Cross Site Script)攻击

   跨站脚本攻击是在用户浏览网页时用户浏览器中执行恶意脚本的攻击方式。

   跨站脚本攻击分有两种形式:反射型攻击(诱使用户点击一个嵌入恶意脚本的链接以达到攻击的目标,目前有很多攻击者利用论坛、微博发布含有恶意脚本的URL就属于这种方式)和持久型攻击(将恶意脚本提交到被攻击网站的数据库中,用户浏览网页时,恶意脚本从数据库中被加载到页面执行,QQ邮箱的早期版本就曾经被利用作为持久型跨站脚本攻击的平台)。

   防范XSS主要有两方面:消毒(对危险字符进行转义)和HttpOnly(防范XSS攻击者窃取Cookie数据)。

2、SQL注入攻击

          SQL注入攻击是注入攻击最常见的形式(此外还有OS注入攻击(Struts 2的高危漏洞就是通过OGNL实施OS注入攻击导致的)),当服务器使用请求参数构造SQL语句时,恶意的SQL被嵌入到SQL中交给数据库执行。

          SQL注入攻击需要攻击者对数据库结构有所了解才能进行,攻击者想要获得表结构有多种方式:(1)如果使用开源系统搭建网站,数据库结构也是公开的(目前有很多现成的系统可以直接搭建论坛,电商网站,虽然方便快捷但是风险是必须要认真评估的);(2)错误回显(如果将服务器的错误信息直接显示在页面上,攻击者可以通过非法参数引发页面错误从而通过错误信息了解数据库结构,Web应用应当设置友好的错误页,一方面符合最小惊讶原则,一方面屏蔽掉可能给系统带来危险的错误回显信息);(3)盲注。

   防范SQL注入攻击也可以采用消毒的方式,通过正则表达式对请求参数进行验证,此外,参数绑定也是很好的手段,这样恶意的SQL会被当做SQL的参数而不是命令被执行,JDBC中的PreparedStatement就是支持参数绑定的语句对象,从性能和安全性上都明显优于Statement。

浅析:XSS攻击、SQL注入攻击和CSRF攻击_第1张图片

浅析:XSS攻击、SQL注入攻击和CSRF攻击_第2张图片

3、CSRF(Cross Site Request Forgery)攻击

   跨站请求伪造攻击是攻击者通过跨站请求,以合法的用户身份进行非法操作(如转账或发帖等)。

         CSRF的原理是利用浏览器的Cookie或服务器的Session,盗取用户身份。

         防范CSRF的主要手段是识别请求者的身份,主要有以下几种方式:(1)在表单中添加令牌(token);(2)验证码;(3)检查请求头中的Referer。

浅析:XSS攻击、SQL注入攻击和CSRF攻击_第3张图片

注:图片来源于网络,仅供参考。

你可能感兴趣的:(Java)