一、SQL注入攻击(SQL Injection)
攻击者把SQL命令插入到Web表单的输入域或页面请求的字符串,欺骗服务器执行恶意的SQL命令。
防范方法:
1.检查变量数据类型和格式
2.过滤特殊符号
3.绑定变量,使用预处理语句
二、跨网站脚本攻击(Cross Site Scripting, XSS)
攻击者将恶意代码注入到网页上,其他用户在加载网页时就会执行代码,攻击者可能得到包括但不限于更高的权限(如执行一些操作)、私密网页内容、会话和cookie等各种内容。这些恶意代码通常是JavaScript、HTML以及其他客户端脚本语言。
防范方法:使用htmlspecialchars函数将特殊字符转换成HTML编码,过滤输出的变量
三、跨网站请求伪造攻击(Cross Site Request Forgeries, CSRF)
是属于伪造客户端请求的一种攻击方式,目的是让用户访问攻击者伪造的网页,执行网页中的恶意脚本,伪造用户请求,对用户有登录权限的网站空间实施攻击。
防范CSRF要比防范其他攻击更加困难,因为CSRF的HTTP请求虽然是攻击者伪造的,但是却是由目标用户发出的,一般常见的防范方法有下面几种:
1、检查网页的来源
2、检查内置的隐藏变量
3、使用POST,不要使用GET
四、Session劫持攻击(Session Hijacking)
攻击者利用各种手段来获取目标用户的session id。一旦获取到session id,那么攻击者可以利用目标用户的身份来登录网站,获取目标用户的操作权限。
攻击者获取目标用户session id的方法:
- 暴力破解:尝试各种session id,直到破解为止;
- 计算:如果session id使用非随机的方式产生,那么就有可能计算出来;
- 窃取:使用网络截获,xss攻击等方法获得
防范方法:
- 定期更改session id
- 更改session的名称
- 关闭透明化session id
- 设置HttpOnly。通过设置Cookie的HttpOnly为true,可以防止客户端脚本访问这个Cookie,从而有效的防止XSS攻击。
五、文件上传漏洞攻击(File Upload Attack)
攻击者利用程序缺陷绕过系统对文件的验证与处理策略将恶意代码上传到服务器并获得执行服务器端命令的能力。
常用的攻击手段有:
- 上传Web脚本代码,Web容器解释执行上传的恶意脚本;
- 上传Flash跨域策略文件crossdomain.xml,修改访问权限(其他策略文件利用方式类似);
- 上传病毒、木马文件,诱骗用户和管理员下载执行;
- 上传包含脚本的图片,某些浏览器的低级版本会执行该脚本,用于钓鱼和欺诈。
总的来说,利用的上传文件要么具备可执行能力(恶意代码),要么具备影响服务器行为的能力(配置文件)。
防范方法:
- 文件上传的目录设置为不可执行;
- 判断文件类型,设置白名单。对于图片的处理,可以使用压缩函数或者resize函数,在处理图片的同时破坏图片中可能包含的HTML代码;
- 使用随机数改写文件名和文件路径:一个是上传后无法访问;再来就是像shell、.php 、.rar和crossdomain.xml这种文件,都将因为重命名而无法攻击;
- 单独设置文件服务器的域名:由于浏览器同源策略的关系,一系列客户端攻击将失效,比如上传crossdomain.xml、上传包含Javascript的XSS利用等问题将得到解决。
来源:oschina
链接:https://my.oschina.net/u/3646190/blog/2050814