web攻击和防御措施
1、SQL注入:参照下面的链接
http://www.cnblogs.com/chenhaoyu/p/8758888.html
2、跨网站脚本攻击(Cross Site Scripting, XSS)
攻击者将恶意代码注入到网页上,其他用户在加载网页时就会执行代码,攻击者可能得到包括但不限于更高的权限(如执行一些操作)、私密网页内容、会话和cookie等各种内容。这些恶意代码通常是JavaScript、HTML以及其他客户端脚本语言。
如果传入一段脚本<script>[code]</script>,那么脚本也会执行。
防范方法:
1、使用htmlspecialchars函数将特殊字符转换成HTML编码,过滤输出的变量
2、如果想更彻底的过滤,使用HTMLPurifire插件过滤,专门用来防止xss攻击的插件
3、跨网站请求伪造攻击(Cross Site Request Forgeries, CSRF)
攻击者伪造目标用户的HTTP请求,然后此请求发送到有CSRF漏洞的网站,网站执行此请求后,引发跨站请求伪造攻击。攻击者利用隐蔽的HTTP连接,让目标用户在不注意的情况下单击这个链接,由于是用户自己点击的,而他又是合法用户拥有合法权限,所以目标用户能够在网站内执行特定的HTTP链接,从而达到攻击者的目的。
与xss的不同点:
它与XSS的攻击方法不同,XSS利用漏洞影响站点内的用户,攻击目标是同一站点内的用户者,而CSRF 通过伪装成受害用户发送恶意请求来影响Web系统中受害用户的利益。
简单说下原理:首先有一个站点A,用户访问了其中一个页面,URL为/sdad/asd?uid=1&username=ww,又访问了一个站点B的其中一个页面,而这个页面中有一个img标签,如
<img src="/sdad/asd?uid=1&username=bbbb">,如果A站点的那个页面是修改用户名操作,那么当用户访问站点B的这个页面时,就触发了CSRF攻击,就把用户名ww改为了bbbb,从而实现了CSRF攻击
防御措施一:判断请求头的来源
// 检查上一页面是否为当前站点下的页面
3 if (!empty($_SERVER['HTTP_REFERER'])) {
4 if (parse_url($_SERVER['HTTP_REFERER'], PHP_URL_HOST) != 'html5.yang.com') {
5 // 可以设置http错误码或者指向一个无害的url地址
6 //header('HTTP/1.1 404 not found');
7 //header('HTTP/1.1 403 forbiden');
8 header('Location: http://html5.yang.com/favicon.ico');
9 // 这里需要注意一定要exit(), 否则脚本会接着执行
10 exit();
11 }
12 }
防御措施二:在页面生成一个随即串并保存在token中,用于在服务器中比对,参照laravel中的CSRF防御机制
4、Session劫持攻击(Session Hijacking)
攻击者利用各种手段来获取目标用户的session id。一旦获取到session id,那么攻击者可以利用目标用户的身份来登录网站,获取目标用户的操作权限。
防御方法:
1、 更改Session名称。PHP中Session的默认名称是PHPSESSID,此变量会保存在Cookie中,如果攻击者不分析站点,就不能猜到Session名称,阻挡部分攻击。 2、 关闭透明化Session ID。透明化Session ID指当浏览器中的Http请求没有使用Cookie来存放Session ID时,Session ID则使用URL来传递。 3、 设置HttpOnly。通过设置Cookie的HttpOnly为true,可以防止客户端脚本访问这个Cookie,从而有效的防止XSS攻击。 4、 关闭所有phpinfo类dump request信息的页面。 5、验证HTTP头部信息 6、每当用户登陆的时候就进行重置sessionID 7、sessionID闲置过久时,进行重置sessionID
5、文件上传漏洞攻击(File Upload Attack)
攻击者利用程序缺陷绕过系统对文件的验证与处理策略将恶意代码上传到服务器并获得执行服务器端命令的能力。
常用的攻击手段有:
上传Web脚本代码,Web容器解释执行上传的恶意脚本;
上传Flash跨域策略文件crossdomain.xml,修改访问权限(其他策略文件利用方式类似);
上传病毒、木马文件,诱骗用户和管理员下载执行;
上传包含脚本的图片,某些浏览器的低级版本会执行该脚本,用于钓鱼和欺诈。
总的来说,利用的上传文件要么具备可执行能力(恶意代码),要么具备影响服务器行为的能力(配置文件)。
防范措施:
1.文件上传的目录设置为不可执行;
2.判断文件类型,设置白名单。对于图片的处理,可以使用压缩函数或者resize函数,在处理图片的同时破坏图片中可能包含的HTML代码;
3.使用随机数改写文件名和文件路径:一个是上传后无法访问;再来就是像shell、.php 、.rar和crossdomain.xml这种文件,都将因为重命名而无法攻击;
4.单独设置文件服务器的域名:由于浏览器同源策略的关系,一系列客户端攻击将失效,比如上传crossdomain.xml、上传包含Javascript的XSS利用等问题将得到解决。
web攻击和防御措施的更多相关文章
- Web安全之CSRF攻击的防御措施
Web安全之CSRF攻击的防御措施 CSRF是什么? Cross Site Request Forgery,中文是:跨站点请求伪造. CSRF攻击者在用户已经登录目标网站之后,诱使用户访问一个攻击 ...
- Mac地址泛洪攻击的防御措施和具体配置
Mac地址泛洪攻击指的是:利用交换机的mac地址学习机制,攻击者不断地刷新mac地址,填满交换机的mac地址表,以致崩溃,使交换机不得不使用广播发包,从而获取其他人的报文信息. mac地址泛洪攻击的防 ...
- 常见【十种】WEB攻击及防御技术总结
最近参加了一个WEB安全培训,感觉WEB攻击跟防御都是挺有意思的.以下总结比较简短,仅供观赏哈. 一.XSS攻击 [介绍] xss攻击是跨站脚本攻击,例如在表单中提交含有可执行的javascript的 ...
- DDoS攻击及防御措施
SYN flood 伪造大量的源IP地址,分别向服务器端发送大量的SYN包,此时服务器端会返回SYN/ACK 包,因为伪造的IP并不会答应,服务器端并没有收到伪造的IP的回应,会重试3~5次并等待一个 ...
- web攻击与防御
攻击方式 利用输出值转义漏洞 跨站脚本攻击(XSS) SQL注入攻击 OS命令注入攻击 HTTP首部注入攻击 邮件首部注入攻击 文件目录遍历攻击 利用设置或设计缺陷 强制游览 开放重定向 不正确的错误 ...
- 常见web攻击以及防御
xss攻击: 跨站脚本攻击,攻击者在网页中嵌入恶意代码,当用户打开网页,脚本程序便开始在客户端的浏览器上执行,以盗取客户端cookie,用户名密码,下载执行病毒木马程序,甚至是获取客户端admin权限 ...
- web攻击之零:WEB攻击及防御技术汇总
一.XSS攻击 [介绍] xss攻击是跨站脚本攻击,例如在表单中提交含有可执行的javascript的内容文本,如果服务器端没有过滤或转义这些脚本,而这些脚本由通过内容的形式发布到了页面上,这个时候如 ...
- web攻击与防御技术--SQL注入
sql注入是WEB安全中比较重要而复杂的一个东西.而且危害性比较大. 一般来讲SQL注入的话首先要识别注入点.一个是看能不能注入另外一个是看是什么类型的注入比如说字符,数字,搜索(?)等等 GET.P ...
- 针对SYN洪水攻击的防御措施
可以运用sysctl命令进行配置,由于本命令参数较多,这里只简单记录几个比较常用的参数: 1.tcp_max_syn_backlog 这个参数指定了后备队列可维持的TCP半开连接的数目,如果该值设定很 ...
随机推荐
- 源码实现 --> strcpy
拷贝字符串到目标字符串 函数 char *strcpy(char *strDestination, const char *strSource); 复制源串strSource到目标串strDestin ...
- (Matlab)GPU计算及CPU计算能力的比较
%%首先以200*200的矩阵做加减乘除 做比较 t = zeros(1,100); A = rand(200,200);B = rand(200,200);C = rand(200,200); fo ...
- 工作中MySql的了解到的小技巧
工作中MySql的小技巧 1. 跑脚本时,经常遇到有则更新无插入的 逻辑操作:通常情况下,来一波if()判断然后选择 更新还是插入,前两天逛论坛时发现有人在比较REPLACE INTO 和 INSET ...
- JAVA-基础语法篇
JAVA-基础语法篇 一. 基础语法: 对大小写敏感 类名的首字母大写 方法名首字母小写,后面用驼峰发命名 源文件名和类名要相同 主方法入口: public static void main( ...
- 论文阅读——Visual inertial odometry using coupled nonlinear optimization
简介:论文提出一种新的视觉里程计算法,其直接利用带噪声的IMU数据和视觉特征位置来优化相机位姿.不同于对IMU和视觉数据运行分离的滤波器,这种算法将它们纳入联合的非线性优化框架中.视觉特征的透视重投影 ...
- JavaScript(第三十一天)【JSON】
前两章我们探讨了XML的结构化数据,但开发人员还是觉得这种微型的数据结构还是过于烦琐.冗长.为了解决这个问题,JSON的结构化数据出现了.JSON是JavaScript的一个严格的子集,利用JavaS ...
- %f使用时的注意事项
1不是所有定义都用int,使用浮点函数需要把int改成float才能正常工作 2保留一位小数时要打入%0.1f,保留两位小数时要打入%0.2f,而不是%0.01f
- 高级软件工程2017第5次作业—— 团队项目:需求改进&系统设计
Deadline:2017-10-23(周一) 21:00pm 注:以下内容参考 集大作业 1.评分规则: 按时交 - 有分,检查的项目包括后文的四个方面 需求&原型改进 - 20分 系统设计 ...
- 软件工程结对编程-2017282110264&2017282110249
0 小组成员 李世钰 / 2017202110264 王成科 / 2017282110249 1 项目 GitHub 地址 && 演示地址 GitHub: https://github ...
- 简单的C语言编译器--语法分析器
语法分析算是最难的一部分了.总而言之,语法分析就是先设计一系列语法,然后再用设计好的语法去归约词法分析中的结果.最后将归约过程打印出来,或者生成抽象语法树. 1. 设计文法 以下是我的文法(引入的 ...