网站攻击以及解决方案
一 : XSS攻击
1:XSS攻击原理:
Xss(cross-site scripting)攻击即跨站点脚本攻击,指黑客通过篡改页面,注入恶意HTML脚本,在用户浏览网页时,控制用户浏览器进行恶意操作.
2:XSS攻击的两种类型:
1>反射型:
攻击者诱使用户点击一个嵌入恶意脚本的连接,达到攻击的目的.
2>持久型:
黑客提交含有恶意脚本的请求,保存在被攻击的web站点的数据库中, 用户浏览网页时,恶意脚本被包含在正常页面中,达到攻击的目的.
3:XSS攻击的危害包括
盗取各类用户帐号,如机器登录帐号、用户网银帐号、各类管理员帐号
控制企业数据,包括读取、篡改、添加、删除企业敏感数据的能力
盗窃企业重要的具有商业价值的资料
非法转账
强制发送电子邮件
控制受害者机器向其它网站发起攻击
4:XSS攻击的处理:
(1) 对一些特殊的标签进行转义;
(2) 直接过滤掉JavaScript事件标签和一些特殊的html标签;
(3) 将重要的cookie标记为http only;
(4) 只允许用户输入我们期望的数据;
(5) 对数据进行html encode处理等。
二 :SQL注入攻击
1:SQL注入攻击原理:
攻击者在HTTP请求中注入恶意SQL命令,服务器用请求参数构造数据库SQL命令时,恶意SQL被一起构造,并在数据库中执行.
2:SQL攻击的处理:
1>可通过正则匹配.
2>可通过addslashes函数对数据库操作关键字进行过滤.
3>sql语句书写时尽量不要省略小引号和单引号
4>开启PHP安全模式safe_mode=on
5>打开magic_quotes_gpc来防止SQL注入
6>使用MYSQLI或PDO预处理
三:CSRF攻击
1: Csrf攻击原理:
攻击者通过跨站请求以合法用户的身份进行非法操作.
2:csrf攻击的处理主要是识别请求者身份:
1>表单Token: 通过在请求参数中添加随机数来阻止攻击者获 得所有请求参数.
2>验证码: 请求提交时,用户输入验证码,以避免用户在不知情的情况下被攻击者伪造请求.
3>Referer: HTTP请求头的referer域中记录着请求来源,可通过请求来源,验证是否合法.
3:csrf攻击的危害包括:
转账交易,非法评论
四:Error code(错误回显)
原理:
通过故意制造非法输入,使系统运行时出错,获得异常信息,从而寻找系统漏洞进行攻击.
解决方式:
通过配置web服务器的参数,跳转500页面到专门的错误页面.
五:HTML注入
原理:
Php,jsp等服务器页面程序中使用HTML注释,这些HTML注释就会显示在客户端浏览器,给黑客造成攻击便利
解决方式:
程序发布前需要进行代码review或自动扫描,避免HTML注入.
六:文件上传
原理:
如果上传的是可执行的程序,并通过该程序获得服务器端命令执行能力,那么攻击者就可以攻击集群环境和其他机器
解决方法:
设置上传文件白名单.修改文件名,使用专门的存储.
七:路径遍历:
原理:
攻击者在请求的url中使用相对路径,遍历系统未开放的目录和文件.
解决方法:
将js,css等资源文件部署在独立服务器上,使用独立域名,其他文件不使用静态URL访问,动态参数不包含文件路径信息.