admin管理员组

文章数量:1574524

       随着网络技术的不断发展,实体交易逐渐的扩展位网上交易,这位很多大型互联网公司提功能很多赚钱的门道,网上各种平台铺天盖地适应这种趋势,但是,网络交易的安全性成为了各大互联网公司的重中之重。

常见的网络攻击手段:

    1.xss攻击:

          指黑客通过篡改网页,注入恶意HTML脚本,在用户浏览网页时,控制用户浏览器进行恶意操作的一种攻击方式。常见的XSS攻击类型有两种,一种是反射型,攻击者诱使用户点击一个嵌入恶意脚本的链接,达到攻击的目的。

反射性xss攻击

                
         另外一种ⅹSS攻击是持久型ⅩSS攻击,黑客提交含有恶意脚本的请求,保存在被攻击的Web站点的数据库中,用户浏览网页时,恶意脚本被包含在正常页面中,达到攻击的目的,如图8,2所示。此种攻击经常使用在论坛,博客等Web应用中。

 持久性xss攻击

               

  防御方式:

       消毒

           XSS攻击者一般都是通过在请求中嵌入恶意脚本达到攻击的目的,这些脚本是一般用户输入中不使用的,如果进行过滤和消毒处理,即对某些htm危险字符转乂,如“>转义为“&gt"、“<”转义为“&It”等,就可以防止大部分攻击。为了避免对不必要的内容错误转义,如“3<5”中的“<”需要进行文本匹配后再转义,如“< <lmg src=”这样的上下文中的“<”才转义。事实上,消毒几乎是所有网站最必备的XSS防攻击手段。

       Httponly
                 
          最早由微软提出,即浏览器禁止页面 JavaScript访问带有 Httponly属性的 Cookie。Httponly并不是直接对抗XSS攻击的,而是防止XSS攻击者窃取 Cookie。对于存放敏感信息的 Cookie,如用户认证信息等,可通过对该 Cookie添加 Httponly属性,避免被攻击脚本窃取。

   2.注入攻击:

        两种形式:sql注入攻击和Os注入攻击

              sql注入:攻击者在HTTP请求中注入恶意的sql命令,服务器用请求参数构造数据库sql命令时,恶意sql被一起构造,并在数据库中执行。

             

     SαL注入攻击需要攻击者对数据库结构有所了解才能进行,攻击者获取数据库表结构信息的手段有如下几种。 

            开源
                    如果网站采用开源软件搭建,如用 Discuz!搭建论坛网站,那么网站数据库结构就是公开的,攻击者可以直接获得。

            错误回显
                    如果网站开启错误回显,即服务器内部500错误会显示到浏览器上。攻击者通过故意构造非法参数,使服务端异常信息输出到浏览器端,为攻击猜测数据库表结构提供了。
            盲注
                   网站关闭错误回显,攻击者根据页面变化情况判断SQL语句的执行情况,据此猜测数据库表结构,此种方式攻击难度较大。

        防御SoL注入攻击首先要避免被攻击者猜测到表名等数据库表结构信息,此外还可 以采用如下方式。       

            消毒

                 和防ⅹSS攻击一样,请求参数消毒是一种比较简单粗暴又有效的手段。通过正则匹配,过滤请求数据中可能注入的SoL,如“ drop table”、“b(?; update.*bsetdeletelblW*? bfrom)b”等。

           参数绑定

                 使用预编译手段,绑定参数是最好的防SL注入方法。目前许多数据访问层框架,如 IBatis, Hibernate等,都实现SQL预编译和参数绑定,攻击者的恶意SQL会被当做SQL的参数,而不是SQL命令被执行。

  3.CSRF攻击:

           攻击者通过跨站请求,以合法用户的身份进行非法操作,如转账交易、发表评论等,如图8.4所示。CSRF的主要手法是利用跨站请求,在用户不知情的情况下,以用户的身份伪造请求。其核心是利用了浏览器 Cookie或服务器 Session策略,盗取用户身份。

     

    防御手段主要是识别请求者身份。
                 
            1.表单token 
                       CSRF是一个伪造用户请求的操作,所以需要构造用户请求的所有参数才可以。表单Token通过在请求参数中增加随机数的办法来阻止攻击者获得所有请求参数:在页面表单中增加一个随机数作为 Token,每次响应页面的 Token都不相同,从正常页面提交的请求会包含该 Token值,而伪造的请求无法获得该值,服务器检查请求参数中 Token的值是否存在并且正确以确定请求提交者是否合法。

           2.验证码
           3.Referer check 
                      HTP请求头的 Referer域中记录着请求来源,可通过检查请求来源,验证其是否合法。很多网站使用这个功能实现图片防盗链(如果图片访问的页面来源不是来自自己网站的网页就拒绝)。

 

  4. 其他攻击和漏洞
            
           Error  Code也称作错误回显,许多web服务器默认是打开异常信息输出的,即服务器端未处理的异常堆栈信息会直接输出到客户端浏览器,这种方式虽然对程序调试和错误报告有好处,但同时也给黑客造成可乘之机。通过故意制造非法输入,使系统运行时出错,获得异常信息,从而寻找系统漏洞进行攻击。防御手段也很简单,通过配置Web服务器参数,跳转500页面(HTTP响应码500表示服务器内部错误)到专门的错误页面即可,Web应用常用的MVC框架也有这个功能。

           HTML注释

信息加密和密钥管理:

      通常,为了保护网站的敏感数据,应用需要对这些信息进行加密处理,信息加密技术可分为三类:单项散列加密、对称加密和非对称加密。
       单向散列加密:
          单向散列加密是指通过对不同输入长度的信息进行散列计算,得到固定长度的输出,这个散列计算过程是单向的,即不能对固定长度的输出进行计算从而获得输入信息。

          

         利用单向散列加密的这个特性,可以进行密码加密保存,即用户注册时输入的密码不直接保存到数据库,而是对密码进行单向散列加密,将密文存入数据库,用户登录时进行密码验证,同样计算得到输入密码的密文,并和数据库中的密文比较,如果一致,
则密码验证成功,具体过程如图所示。

      

      为了加强单向散列计算的安全性,还会给散列算法加点盐(salt),salt相当于加密的密钥,增加破解的难度。
      常用的单向散列算法有MD5、SHA等。单向散列算法还有一个特点就是输入的任何微小变化都会导致输出的完全不同,这个特性有时也会被用来生成信息摘要、计算具有高离散程度的随机数等用途。


      对称加密:

               所谓对称加密是指加密和解密使用的密钥是同一个密钥(或者可以互相推算)
             
              对称加密通常用在信息需要安全交换或存储的场合,如 Cookie加密、通信加密等。

               对称加密的优点是算法简单,加解密效率髙,系统开销小,适合对大量数据加密,缺点是加解密使用同一个密钥,远程通信的情况下如何安全的交换密钥是个难题,如果密钥丢失,那么所有的加密信息也就没有秘密可言了。常用的对称加密算法有DES算发、RC算法等。对称加密是一种传统加密手段,也是最常用的加密手段,适用于绝大多数需要加密的场合。
        

    非对称加密:

           不同于对称加密,非对称加密和解密使用的密钥不是同一密钥,其中一个对外界公开,被称作公钥,另一个只有所有者知道,被称作私钥。用公钥加密的信息必须用私钥才能解开,反之,用私钥加密的信息只有用公钥才能解开,如图8.9所示。理论上说,不可能通过公钥计算获取私钥。

      

         通常用在信心安全传输和数字签名等场景。

         信息发送者A通过公开渠道获得信息接收者B的公钥,对提交信息进行加密,然后通过非安全传输通道将密文信息发送给B,B得到密文信息后,用自己的私钥对信息进行解密,获得原始的明文信息。即使密文信息在传输过程中遭到窃取,窃取者没有解密密
钥也无法还原明文。

         数字签名的过程则相反,签名者用自己的私钥对信息进行加密,然后发送给对方,接收方用签名者的公钥对信息进行解密,获得原始明文信息,由于私钥只有签名者拥有,因此该信息是不可抵赖的,具有签名的性质。
    

        非对称加密的常用算法有RSA算法等。 Https传输中浏览器使用的数字证书实质上是经过权威机构认证的非对称加密的公钥

  密钥安全管理:

      信息的安全是靠密钥来保证的。因而密钥的存储安全性是非常重要的。

      一种方案是把密钥和算法放在一个独立的服务器上,甚至做成一个专用的硬件设施,对外提供加密和解密服务,应用系统通过调用这个服务,实现数据的加解密。由于密钥和算法独立部署,由专人维护,使得密钥泄露的概率大大降低。但是这种方案成本较髙,
而且有可能会成为应用的瓶颈,每次加密、解密都需要进行一次远程服务调用,系统性能开销也较大。
      另一种方案是将加解密算法放在应用系统中,密钥则放在独立服务器中,为了提高密钥的安全性,实际存储时,密钥被切分成数片,加密后分别保存在不同存储介质中,兼顾密钥安全性的同时又改善了性能,如图所示。

      

 电子商务风险控制:

       风险
           电子商务具有多种形式,B2B、B2C、C2C每种交易的场景都不相同,风险也各有特点,大致可分为以下几种。
              账户风险:包括账户被黑客盗用,恶意注册账号等几种情形。
              买家风险:买家恶意下单占用库存进行不正当竞争;黄牛利用促销抢购低价商品;此外还有良品拒收,欺诈退款及常见于B2B交易的虚假询盘等。
             卖家风险:不良卖家进行恶意欺诈的行为,例如货不对板,虚假发货,炒作信用等,此外还有出售违禁商品、侵权产品等。
             交易风险:信用卡盗刷,支付欺诈,洗钱套现等。

       风控

             机器自动风控的技术手段主要有规则引擎和统计模型。

         规则引擎:

              当交易的某些指标满足一定条件时,就会被认为具有高风险的欺诈可能性。比如用宀来自欺诈高发地区;交易金额超过某个数值;和上次登录的地址距离差距很大;用户登录地与收货地不符;用户第一次交易等等。

            

           统计模型:

              规则引擎虽然技术简单,但是随着规则的逐渐增加,会出现规则冲突,难以维护等情况,而且规则越多,性能也越差。目前大型网站更倾向于使用统计模型进行风控。风控领域使用的统计模型使用前面提到的分类算法或者更复杂的机器学习算法进行智能统计。

      

本文标签: 架构网站安全性