本文目录一览:
- 1、网站被人cc攻击了怎么处理?
- 2、如何关闭跨站点脚本 (XSS) 筛选器
- 3、如何防止xss攻击,需要过滤什么
- 4、网站受到了XSS攻击,有什么办法?
- 5、怎样过滤跨站恶意脚本攻击
- 6、如何正确防御xss攻击
网站被人cc攻击了怎么处理?
CC攻击是目前国际上攻击成本最低的一种方式,往往黑客只需要一个简单的CC攻击软件就可以对一个小型网站造成严重的损失,轻的打开慢,卡,严重的会使网站服务器直接卡死。因为CC攻击成本低,所以CC攻击是目前国内最常见的攻击方式。
简单的CC攻击往往是通过多个代理IP对网站进行大量请求,从而导致服务器资源占满,引起网站卡死,这类攻击防御起来非常简单,一般的防火墙如安全狗都是可以防护的,只需要对IP访问频率进行限制即可。
但如果黑客的代理IP较多,那就很难防了,因为对方一个IP可以设置成一分钟访问一次或者几十秒请求一次,这个频率基本上和正常用户一样了,防火墙是无法进行拦截了。
有些防火墙可以通过User-Agent过滤,即过滤某些浏览器、蜘蛛请求,但这很容易误伤,而且很多攻击都是使用正常浏览器请求的,所以并不能有效解决CC攻击问题。
那么如何有效解决CC攻击呢?
主机吧这里推荐使用百度云加速高防CDN进行防护,百度云加速不仅可以有效防护DDoS攻击,同时对CC攻击防护也是非常有效果。百度云加速提供四到七层的DDoS攻击防护,包括CC、SYN
flood、UDP flood等所有DDoS攻击方式,
通过分布式高性能防火墙+精准流量清洗+CC防御+WEB攻击拦截,组合过滤精确识别,有效防御各种类型攻击。
接入百度云加速后即可使用以下功能进行防护拦截。
WAF篇
WAF(Web Application
Firewall)网站应用防火墙,简单点讲,就是保护您网站避免被入侵的一套防火墙系统。云加速的防火墙规则由国内顶尖的云加速安全团队制定,能防御市面上超过99%常见的SQL注入、XSS、Web服务器漏洞、应用程序漏洞以及文件访问控制等等系列的渗透攻击,有效的避免您的网站遭到入侵。
下面为WAF选择展开后的功能界面:
Web应用防火墙开关 关闭后WAF功能将失效。
高级定制 点开后会发现整个WAF规则划分成了一个个模块,网站有特殊功能的用户可以自行选择使用哪些模块。
凡是出现验证码页面的拦截是基础规则拦截,基础规则在关闭WAF功能开关后依然是有效的,只能通过加IP白名单的方式解决。
安全验证有效期 很多功能都存在安全验证,在最终用户完成安全验证后的多久以内我们认为是安全的?这里需要配置有效期,如下图,多个时间可以选择:
浏览器检查 存在非浏览器请求方式的小伙伴请注意了,如果您网站有非浏览器请求,请关闭该功能。
访问出现浏览器检查的5秒页面,是因为您开启了ADS中CC防护的强力防护级别,在这个级别会对每一次请求进行识别,如果您不需要功能,请将CC防护调整到其他级别即可。
邮件地址混淆 开启该功能后,在您网页上所留的邮箱可以避免被爬虫扫描识别。
防盗链 开启后,您网站上的图片资源被盗链后,引用位置会出现403的显示。开启防盗链功能后,如果有部分网站是您许可链接的,那么白名单中添加域名即可。
通过以上的介绍,您现在也许已经了解云加速的全部WAF功能了。
IP防火墙篇
自定义IP防护策略,个性化安全服务。通过添加IP黑名单、IP白名单、强力防护名单,您可以对来自特定IP或IP段的请求进行拦截、放行或强力防护,从而实现IP级别的防护策略。
IP防火墙如下图,具有以下几个功能和特点
IP黑名单 可以禁止哪些IP来访问您的网站,目前支持B段和C段的IP防护,且支持输入0/24、0/16 进行网段屏蔽,被屏蔽后的用户访问会报1006-1008错误,如下图。
IP白名单 有两种情况需要添加白名单,第一种是部分用户会通过云加速对网站进行页面修改等高风险操作时,会被云加速给阻断。当您在确认用户操作是合法的情况下,请将他的IP地址加入到IP白名单进行放行;
第二种是用户出口IP在互联网上有太多的不良记录,用户的IP如果匹配上了黑名单,那么会弹出验证码框,来确认他是否是恶意扫描以及攻击,如果您认为用户IP是一个正常的访问,也需要加白名单。
下面图列分别是操作拦截以及黑名单拦截:
强力防护名单 有一些IP无论从访问频率还是行为都比较可以,但是您又担心误伤,这个功能就是为了解决上述问题而设计的,您可以输入IP或者是网段,只针对您输入的这部分进行强力防护。
严格意义来讲这个功能主要是ADS在发挥作用,但是为了用户更直观的操作,我们将他固定到了这里。
ADS篇
ADS 高级攻击防御提供了四到七层的DDoS攻击防护,包括CC、SYN flood、UDP flood等所有DDoS攻击方式, 通过分布式高性能防火墙+精准流量清洗+CC防御+WEB攻击拦截,组合过滤精确识别,有效防御各种类型攻击。
基础防护
DDoS防护 为域名提供四层的流量攻击防护,具体防护量级和域名的套餐类型相关。目前该功能无法关闭,因为攻击后的系统策略加载需要靠他来完成。
CC防护 在CC防护上,我们主要是以常驻规则和实时动态规则来进行防御,分为了强力、高、中、低四个等级。
强力防护:建议仅在正在受到CC攻击且防御不佳时开启
高:系统会对所有2周内产生可疑行为的用户进行选择性拦截
中:系统会智能识别出可疑请求,并且自动选择合适的认证方式(推荐)
低:系统会对本次攻击中产生可疑行为的用户进行拦截
如果在高级别时用户服务器已经超负荷,建议拉到强力模式。强力防护这个等级,会对每一次的访问进行验证,验证有效期由WAF规则中的“安全验证有效期”来进行控制。
整个ADS操作很简单,对于高端用户,建议配合自定义规则来使用。
高级防护
除了基础防护外,云加速还为国内用户提供了更多的高级防护。
停用海外节点 停止对该域名分配海外服务节点
超级清洗中心 使用企业级云清洗中心服务,更快更稳定,在被攻击情况下开启
海外IP防护 一键开启或停止对海外IP的访问启用防护策略
设置IP访问频率 设置单个IP的访问频率,超出限制后需通过验证才能继续访问
源站保护 设置访问源站频率的阈值,超出后站点全部流量需要通过验证后才能继续访问
URL黑名单 系统将对已添加的url的访问启用验证
转自:网页链接
如何关闭跨站点脚本 (XSS) 筛选器
这个错误是由于 IE8 的跨站脚本(Cross-site scripting, XSS)防护阻止了跨站发送的请求。
点击 IE8 的“工具”-“Internet 选项”,进入“安全”选项卡,打开“Internet”下方的“自定义级别”,在“安全设置”对话框中找到“启用 XSS 筛选器”,改为“禁用”即可。
如何防止xss攻击,需要过滤什么
XSS攻击通常是指黑客通过"HTML注入"篡改了网页,插入了恶意的脚本,从而在用户浏览网页时,控制用户浏览器的一种攻击。
一、HttpOnly防止劫取Cookie
HttpOnly最早由微软提出,至今已经成为一个标准。浏览器将禁止页面的Javascript访问带有HttpOnly属性的Cookie。目前主流浏览器都支持,HttpOnly解决是XSS后的Cookie支持攻击。
我们来看下百度有没有使用。
未登录时的Cookie信息
可以看到,所有Cookie都没有设置HttpOnly,现在我登录下
发现在个叫BDUSS的Cookie设置了HttpOnly。可以猜测此Cookie用于认证。
下面我用PHP来实现下:
?php
header("Set-Cookie: cookie1=test1;");
header("Set-Cookie: cookie2=test2;httponly",false);
setcookie('cookie3','test3',NULL,NULL,NULL,NULL,false);
setcookie('cookie4','test4',NULL,NULL,NULL,NULL,true);
?
script
alert(document.cookie);
/script
js只能读到没有HttpOnly标识的Cookie
二、输入检查
输入检查一般是检查用户输入的数据中是否包含一些特殊字符,如、、'、"等,如果发现存在特殊字符,则将这些字符过滤或者编码。
例如网站注册经常用户名只允许字母和数字的组合,或者邮箱电话,我们会在前端用js进行检查,但在服务器端代码必须再次检查一次,因为客户端的检查很容易绕过。
网上有许多开源的“XSS Filter”的实现,但是它们应该选择性的使用,因为它们对特殊字符的过滤可能并非数据的本意。比如一款php的lib_filter类:
$filter = new lib_filter();
echo $filter-go('1+11');
它输出的是1,这大大歪曲了数据的语义,因此什么情况应该对哪些字符进行过滤应该适情况而定。
三、输出检查
大多人都知道输入需要做检查,但却忽略了输出检查。
1、在HTML标签中输出
如代码:
?php
$a = "scriptalert(1);/script";
$b = "img src=# onerror=alert(2) /";
?
div?=$b?/div
a href="#"?=$a?/a
这样客户端受到xss攻击,解决方法就是对变量使用htmlEncode,php中的函数是htmlentities
?php
$a = "scriptalert(1);/script";
$b = "img src=# onerror=alert(2) /";
?
div?=htmlentities($b)?/div
a href="#"?=htmlentities($a)?/a
2、在HTML属性中输出
div id="div" name ="$var"/div
这种情况防御也是使用htmlEncode
在owasp-php中实现:
$immune_htmlattr = array(',', '.', '-', '_');
$this-htmlEntityCodec-encode($this-immune_htmlattr, "\"script123123;/script\"");
3、在script标签中输出
如代码:
?php
$c = "1;alert(3)";
?
script type="text/javascript"
var c = ?=$c?;
/script
这样xss又生效了。首先js变量输出一定要在引号内,但是如果我$c = "\"abc;alert(123);//",你会发现放引号中都没用,自带的函数都不能很好的满足。这时只能使用一个更加严格的JavascriptEncode函数来保证安全——除数字、字母外的所有字符,都使用十六进制"\xHH"的方式进行编码。这里我采用开源的owasp-php方法来实现
$immune = array("");
echo $this-javascriptCodec-encode($immune, "\"abc;alert(123);//");
最后输出\x22abc\x3Balert\x28123\x29\x3B\x2F\x2F
4、在事件中输出
a href="#" onclick="funcA('$var')" test/a
可能攻击方法
a href="#" onclick="funcA('');alter(/xss/;//')"test/a
这个其实就是写在script中,所以跟3防御相同
5、在css中输出
在owasp-php中实现:
$immune = array("");
$this-cssCodec-encode($immune, 'background:expression(window.x?0:(alert(/XSS/),window.x=1));');
6、在地址中输出
先确保变量是否是"http"开头,然后再使用js的encodeURI或encodeURIComponent方法。
在owasp-php中实现:
$instance = ESAPI::getEncoder();
$instance-encodeForURL(‘url’);
四、处理富文体
就像我写这篇博客,我几乎可以随意输入任意字符,插入图片,插入代码,还可以设置样式。这个时要做的就是设置好白名单,严格控制标签。能自定义 css件麻烦事,因此最好使用成熟的开源框架来检查。php可以使用htmlpurify
五、防御DOM Based XSS
DOM Based XSS是从javascript中输出数据到HTML页面里。
script
var x = "$var";
document.write("a href='"+x+"'test/a");
/script
按照三中输出检查用到的防御方法,在x赋值时进行编码,但是当document.write输出数据到HTML时,浏览器重新渲染了页面,会将x进行解码,因此这么一来,相当于没有编码,而产生xss。
防御方法:首先,还是应该做输出防御编码的,但后面如果是输出到事件或脚本,则要再做一次javascriptEncode编码,如果是输出到HTML内容或属性,则要做一次HTMLEncode。
会触发DOM Based XSS的地方有很多:
document.write()、document.writeln()、xxx.innerHTML=、xxx.outerHTML=、innerHTML.replace、document.attachEvent()、window.attachEvent()、document.location.replace()、document.location.assign()
网站受到了XSS攻击,有什么办法?
一.跨站脚本攻击(XSS)
跨站脚本攻击(XSS,Cross-site scripting)是最常见和基本的攻击WEB网站的方法。攻击者在网页上发布包含攻击性代码的数据。当浏览者看到此网页时,特定的脚本就会以浏览者用 户的身份和权限来执行。通过XSS可以比较容易地修改用户数据、窃取用户信息,以及造成其它类型的攻击,例如CSRF攻击
常见解决办法:确保输出到HTML页面的数据以HTML的方式被转义
出错的页面的漏洞也可能造成XSS攻击.比如页面/gift/giftList.htm?page=2找不到,出错页面直接把该url原样输出,如果攻击者在url后面加上攻击代码发给受害者,就有可能出现XSS攻击
二. 跨站请求伪造攻击(CSRF)
跨站请求伪造(CSRF,Cross-site request forgery)是另一种常见的攻击。攻击者通过各种方法伪造一个请求,模仿用户提交表单的行为,从而达到修改用户的数据,或者执行特定任务的目的。为了 假冒用户的身份,CSRF攻击常常和XSS攻击配合起来做,但也可以通过其它手段,例如诱使用户点击一个包含攻击的链接
解决的思路有:
1.采用POST请求,增加攻击的难度.用户点击一个链接就可以发起GET类型的请求。而POST请求相对比较难,攻击者往往需要借助javascript才能实现
2.对请求进行认证,确保该请求确实是用户本人填写表单并提交的,而不是第三者伪造的.具体可以在会话中增加token,确保看到信息和提交信息的是同一个人
三.Http Heads攻击
凡是用浏览器查看任何WEB网站,无论你的WEB网站采用何种技术和框架,都用到了HTTP协议.HTTP协议在Response header和content之间,有一个空行,即两组CRLF(0x0D 0A)字符。这个空行标志着headers的结束和content的开始。“聪明”的攻击者可以利用这一点。只要攻击者有办法将任意字符“注入”到 headers中,这种攻击就可以发生
以登陆为例:有这样一个url:
当登录成功以后,需要重定向回page参数所指定的页面。下面是重定向发生时的response headers.
HTTP/1.1 302 Moved Temporarily
Date: Tue, 17 Aug 2010 20:00:29 GMT
Server: Apache mod_fcgid/2.3.5 mod_auth_passthrough/2.1 mod_bwlimited/1.4 FrontPage/5.0.2.2635
Location:
假如把URL修改一下,变成这个样子:
那么重定向发生时的reponse会变成下面的样子:
HTTP/1.1 302 Moved Temporarily
Date: Tue, 17 Aug 2010 20:00:29 GMT
Server: Apache mod_fcgid/2.3.5 mod_auth_passthrough/2.1 mod_bwlimited/1.4 FrontPage/5.0.2.2635
Location: ;CRLF
CRLF
scriptalert('hello')/script
这个页面可能会意外地执行隐藏在URL中的javascript。类似的情况不仅发生在重定向(Location header)上,也有可能发生在其它headers中,如Set-Cookie header。这种攻击如果成功的话,可以做很多事,例如:执行脚本、设置额外的cookie(CRLFSet-Cookie: evil=value)等。
避免这种攻击的方法,就是过滤所有的response headers,除去header中出现的非法字符,尤其是CRLF。
服务器一般会限制request headers的大小。例如Apache server默认限制request header为8K。如果超过8K,Aapche Server将会返回400 Bad Request响应:
对于大多数情况,8K是足够大的。假设应用程序把用户输入的某内容保存在cookie中,就有可能超过8K.攻击者把超过8k的header链接发给受害 者,就会被服务器拒绝访问.解决办法就是检查cookie的大小,限制新cookie的总大写,减少因header过大而产生的拒绝访问攻击
四.Cookie攻击
通过Java Script非常容易访问到当前网站的cookie。你可以打开任何网站,然后在浏览器地址栏中输 入:javascript:alert(doucment.cookie),立刻就可以看到当前站点的cookie(如果有的话)。攻击者可以利用这个特 性来取得你的关键信息。例如,和XSS攻击相配合,攻击者在你的浏览器上执行特定的Java Script脚本,取得你的cookie。假设这个网站仅依赖cookie来验证用户身份,那么攻击者就可以假冒你的身份来做一些事情。
现在多数浏览器都支持在cookie上打上HttpOnly的标记,凡有这个标志的cookie就无法通过Java Script来取得,如果能在关键cookie上打上这个标记,就会大大增强cookie的安全性
五.重定向攻击
一种常用的攻击手段是“钓鱼”。钓鱼攻击者,通常会发送给受害者一个合法链接,当链接被点击时,用户被导向一个似是而非的非法网站,从而达到骗取用户信 任、窃取用户资料的目的。为防止这种行为,我们必须对所有的重定向操作进行审核,以避免重定向到一个危险的地方.常见解决方案是白名单,将合法的要重定向 的url加到白名单中,非白名单上的域名重定向时拒之,第二种解决方案是重定向token,在合法的url上加上token,重定向时进行验证.
六.上传文件攻击
1.文件名攻击,上传的文件采用上传之前的文件名,可能造成:客户端和服务端字符码不兼容,导致文件名乱码问题;文件名包含脚本,从而造成攻击.
2.文件后缀攻击.上传的文件的后缀可能是exe可执行程序,js脚本等文件,这些程序可能被执行于受害者的客户端,甚至可能执行于服务器上.因此我们必须过滤文件名后缀,排除那些不被许可的文件名后缀.
3.文件内容攻击.IE6有一个很严重的问题 , 它不信任服务器所发送的content type,而是自动根据文件内容来识别文件的类型,并根据所识别的类型来显示或执行文件.如果上传一个gif文件,在文件末尾放一段js攻击脚本,就有可 能被执行.这种攻击,它的文件名和content type看起来都是合法的gif图片,然而其内容却包含脚本,这样的攻击无法用文件名过滤来排除,而是必须扫描其文件内容,才能识别。
怎样过滤跨站恶意脚本攻击
1.在输入流中截住formdata中的恶意脚本研究两种XSS攻击,如反射型和存储型XSS攻击,其恶意脚本都是来自用户的输入。因此,可以使用过滤用户输入的方法对恶意脚本进行过滤。对简单的HTTP请求,一般使用GET和POST方法。2.在输入流中检测滤掉来自其他网站的URL中的恶意脚本当用户不小心点击了被其他黑客提供的假冒URL,则可能在该URL中注入恶意脚本。因此,也需要对这种情况进行处理。因此为确保其他在header中的恶意脚本,需要对request.getHeader进行重写。以下为例子:publicStringgetHeader(Stringname){Stringvalue=super.getHeader(name);if(value==null)returnnull;returnxssClean(value);}3.xssClean函数怎样实现才可以过滤掉恶意脚本呢?如果是java语言,推荐使用antisamy。使用antisamy进行XSS清理非常简单,只需要简单的几个步骤即可达到目的。1‘.在pom.xml文件中加入antisamy的dependency,org.owasp.antisamyantisamy1.5.32’.加入了dependency之后,就可以在xssClean中加入antisamy对恶意脚本进行清理。其中policy.xml是白名单,policy.xml中规定了各个html元素所必须满足的条件。antisamy的精髓之处在于,使用policy文件来规定你的过滤条件,若输入字符串不满足policy文件中的条件,则会过滤掉字符中的恶意脚本,返回过滤后的结果。具体代码如下:privateStringxssClean(Stringvalue){AntiSamyantiSamy=newAntiSamy();try{finalCleanResultscr=antiSamy.scan(value,Policy.getInstance("policy.xml"),AntiSamy.SAX);returncr.getCleanHTML();}catch(ScanExceptione){e.printStackTrace();}catch(PolicyExceptione){e.printStackTrace();}returnvalue;}这样,我们就将client端用户输入的request,在server端进行了拦截,并且进行了过滤。
如何正确防御xss攻击
传统防御技术
2.1.1基于特征的防御
传统XSS防御多采用特征匹配方式,在所有提交的信息中都进行匹配检查。对于这种类型的XSS攻击,采用的模式匹配方法一般会需要对“javascript”这个关键字进行检索,一旦发现提交信息中包含“javascript”,就认定为XSS攻击。
2.1.2 基于代码修改的防御
和SQL注入防御一样,XSS攻击也是利用了Web页面的编写疏忽,所以还有一种方法就是从Web应用开发的角度来避免:
1、对所有用户提交内容进行可靠的输入验证,包括对URL、查询关键字、HTTP头、POST数据等,仅接受指定长度范围内、采用适当格式、采用所预期的字符的内容提交,对其他的一律过滤。
2、实现Session标记(session tokens)、CAPTCHA系统或者HTTP引用头检查,以防功能被第三方网站所执行。
3、确认接收的的内容被妥善的规范化,仅包含最小的、安全的Tag(没有javascript),去掉任何对远程内容的引用(尤其是样式表和javascript),使用HTTP only的cookie。
当然,如上方法将会降低Web业务系统的可用性,用户仅能输入少量的制定字符,人与系统间的交互被降到极致,仅适用于信息发布型站点。
并且考虑到很少有Web编码人员受过正规的安全培训,很难做到完全避免页面中的XSS漏洞。
扩展资料:
XSS攻击的危害包括
1、盗取各类用户帐号,如机器登录帐号、用户网银帐号、各类管理员帐号
2、控制企业数据,包括读取、篡改、添加、删除企业敏感数据的能力
3、盗窃企业重要的具有商业价值的资料
4、非法转账
5、强制发送电子邮件
6、网站挂马
7、控制受害者机器向其它网站发起攻击
受攻击事件
新浪微博XSS受攻击事件
2011年6月28日晚,新浪微博出现了一次比较大的XSS攻击事件。
大量用户自动发送诸如:
“郭美美事件的一些未注意到的细节”,“建党大业中穿帮地方”,“让女人心动的100句诗歌”,“这是传说中的神仙眷侣啊”等等微博和私信,并自动关注一位名为hellosamy的用户。
事件的经过线索如下:
20:14,开始有大量带V的认证用户中招转发蠕虫
20:30,某网站中的病毒页面无法访问
20:32,新浪微博中hellosamy用户无法访问
21:02,新浪漏洞修补完毕
百度贴吧xss攻击事件
2014年3月9晚,六安吧等几十个贴吧出现点击推广贴会自动转发等。并且吧友所关注的每个关注的贴吧都会转一遍,病毒循环发帖。并且导致吧务人员,和吧友被封禁。
参考资料:
XSS攻击-百度百科