面试宝典系列-Web安全与攻击

1、SQL注入攻击(SQL Injection)

攻击者把SQL命令插入到Web表单的输入域或页面请求的字符串,欺骗服务器执行恶意的SQL命令。php

防范方法:
1.检查变量数据类型和格式
2.过滤特殊符号
3.绑定变量,使用预处理语句html

2、跨网站脚本攻击(Cross Site Scripting, XSS)

攻击者将恶意代码注入到网页上,其余用户在加载网页时就会执行代码,攻击者可能获得包括但不限于更高的权限(如执行一些操做)、私密网页内容、会话和cookie等各类内容。这些恶意代码一般是JavaScript、HTML以及其余客户端脚本语言。shell

防范方法:使用htmlspecialchars函数将特殊字符转换成HTML编码,过滤输出的变量跨域

3、跨网站请求伪造攻击(Cross Site Request Forgeries, CSRF)

是属于伪造客户端请求的一种攻击方式,目的是让用户访问攻击者伪造的网页,执行网页中的恶意脚本,伪造用户请求,对用户有登陆权限的网站空间实施攻击。浏览器

防范CSRF要比防范其余攻击更加困难,由于CSRF的HTTP请求虽然是攻击者伪造的,可是倒是由目标用户发出的,通常常见的防范方法有下面几种:
一、检查网页的来源
二、检查内置的隐藏变量
三、使用POST,不要使用GET服务器

4、Session劫持攻击(Session Hijacking)

攻击者利用各类手段来获取目标用户的session id。一旦获取到session id,那么攻击者能够利用目标用户的身份来登陆网站,获取目标用户的操做权限。
攻击者获取目标用户session id的方法:cookie

  • 暴力破解:尝试各类session id,直到破解为止;
  • 计算:若是session id使用非随机的方式产生,那么就有可能计算出来;
  • 窃取:使用网络截获,xss攻击等方法得到

防范方法:网络

  • 按期更改session id
  • 更改session的名称
  • 关闭透明化session id
  • 设置HttpOnly。经过设置Cookie的HttpOnly为true,能够防止客户端脚本访问这个Cookie,从而有效的防止XSS攻击。

5、文件上传漏洞攻击(File Upload Attack) 

攻击者利用程序缺陷绕过系统对文件的验证与处理策略将恶意代码上传到服务器并得到执行服务器端命令的能力。
经常使用的攻击手段有:session

  • 上传Web脚本代码,Web容器解释执行上传的恶意脚本;
  • 上传Flash跨域策略文件crossdomain.xml,修改访问权限(其余策略文件利用方式相似);
  • 上传病毒、木马文件,诱骗用户和管理员下载执行;
  • 上传包含脚本的图片,某些浏览器的低级版本会执行该脚本,用于钓鱼和欺诈。

总的来讲,利用的上传文件要么具有可执行能力(恶意代码),要么具有影响服务器行为的能力(配置文件)。
防范方法:dom

  • 文件上传的目录设置为不可执行;
  • 判断文件类型,设置白名单。对于图片的处理,可使用压缩函数或者resize函数,在处理图片的同时破坏图片中可能包含的HTML代码;
  • 使用随机数改写文件名和文件路径:一个是上传后没法访问;再来就是像shell、.php 、.rar和crossdomain.xml这种文件,都将由于重命名而没法攻击;
  • 单独设置文件服务器的域名:因为浏览器同源策略的关系,一系列客户端攻击将失效,好比上传crossdomain.xml、上传包含Javascript的XSS利用等问题将获得解决。

相关文章
相关标签/搜索