常见web安全及防护原理

目录

一、SQL注入

二、xss 跨站脚本(Cross-site Scripting)

三、 CSRF

四、 上传漏洞

五、 文件解析漏洞

六、 DDos攻击 分布式拒绝服务(Distributed Denial of service Attack)

七、目录遍历漏洞


一、SQL注入

具体就是通过把sql命令插入到web表单递交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意sql命令

防范

1.永远不要信任用户的输入,要对用户的输入进行校验,可以通过正则表达式,或限制长度,对单引号和双"-"进行转换等。

2.永远不要使用动态拼装SQL,可以使用参数化的SQL或者直接使用存储过程进行数据查询存取。

3.永远不要使用管理员权限的数据库连接,为每个应用使用单独的权限有限的数据库连接。

4.不要把机密信息明文存放,请加密或者hash掉密码和敏感的信息
 

二、xss 跨站脚本(Cross-site Scripting)

xss:是一种网站应用程序的安全漏洞攻击,是代码注入的一种。它允许恶意用户将代码注入到网页上,其他用户在观看网页时就会受到影响。这类攻击通常包含了HTML以及用户端脚本语言。

1.原理:
攻击者往Web页面里插入恶意html标签或者javascript代码。
分别是反射型XSS、持久型XSS和DOM XSS
2.危害:
(1)网络钓鱼,盗取各类用户的账号
(2)窃取用户Cookie,获取用户隐私,或者利用用户身份进一步执行操作
(3)劫持用户(浏览器)会话,从而执行任意操作,例如进行非法转账、强制发表日志等
(4)强制弹出广告页面,刷流量等
(5)进行恶意操作,例如任意篡改页面信息,删除文章等,传播跨站脚本蠕虫,网页挂等
(6)进行基于大量的客户端攻击,如DDOS攻击
(7)结合其它漏洞,如CSRF漏洞。
3.防御:
(1)代码里对用户输入的地方和变量都需要仔细检查长度和对”<”,”>”,”;”,”’”等字符做过滤;其次任何内容写到页面之前都必须加以encode,避免不小心把html tag 弄出来。这一个层面做好,至少可以堵住超过一半的XSS 攻击。
(2)避免直接在cookie 中泄露用户隐私,例如email、密码等等。
(3)通过使cookie 和系统ip 绑定来降低cookie 泄露后的危险。这样攻击者得到的cookie 没有实际价值,不可能拿来重放。
(4)尽量采用POST 而非GET 提交表单

三、 CSRF

1.原理:
CSRF是一种夹持用户在已经登陆的web应用程序上执行非本意的操作的攻击方式。相比于XSS,CSRF是利用了系统对页面浏览器的信任,XSS则利用了系统对用户的信任。

由上图分析我们可以知道构成CSRF攻击是有条件的:
  (1)、客户端必须一个网站并生成cookie凭证存储在浏览器中
       (2)、该cookie没有清除,客户端又tab一个页面进行访问别的网站
2.危害
攻击者利用会话劫持达到自己的目的,比如转账、积分等
3.防御
(1) GET、POST的正确使用
(2) 利用验证码(在一定的情况下使用,但是为了防止客户产生不好印象,尽量不用)
(3) Referer Check(HTTP Referer是header的一部分,当浏览器向web服务器发送请求的时候,一般会带上Referer,告诉服务器我是从哪个页面链接过来的,服务器籍此可以获得一些信息用于处理。但服务器并非任何时候都能取到referer、保护客户隐私,不作为预防主要手段)
(4) Anti CSRF Token:
为每一个表单生成一个随机数秘钥,并在服务器端建立一个拦截器来验证这个token,如果请求中没有token或者token内容不正确,则认为可能是CSRF攻击而拒绝该请求。

四、 上传漏洞

1.原理
文件上传漏洞是指网络攻击者上传了一个可执行的文件到服务器,服务器未经任何检验或过滤,从而造成文件的执行。这里上传的文件可以是木马,病毒,恶意脚本或者WebShell等。
2.危害
1)上传文件是Web脚本语言,服务器的Web容器解释并执行了用户上传的脚本,导致代码执行。
2)上传文件是Flash的策略文件crossdomain.xml,黑客用以控制Flash在该域下的行为(其他通过类似方式控制策略文件的情况类似);
3)上传文件是病毒、木马文件,黑客用以诱骗用户或者管理员下载执行。
4)上传文件是钓鱼图片或为包含了脚本的图片,在某些版本的浏览器中会被作为脚本执行,被用于钓鱼和欺诈。
3.防御:
(1)文件扩展名服务端白名单校验。
(2)文件内容服务端校验。
(3)上传文件重命名。
(4)隐藏上传文件路径。
(5)文件上传的目录设置为不可执行
(6)单独设置文件服务器的域名
以上几点,可以防御绝大多数上传漏洞,但是需要跟服务器容器结合起来。如果解析漏洞依然存在,那么没有绝对的安全。

  • 检查文件上传路径 ( 避免 0x00 截断、 IIS6.0 文件夹解析漏洞、目录遍历 )
  • 文件扩展名检测 ( 避免服务器以非图片的文件格式解析文件 )
  • 文件 MIME验证 ( 比如 GIF 图片 MIME为 image/gif,CSS 文件的 MIME为 text/css 等 ) 3. 文件内容检测 ( 避免图片中插入 webshell)
  • 图片二次渲染 ( 最变态的上传漏洞防御方式 , 基本上完全避免了文件上传漏洞 )
  • 文件重命名 ( 如随机字符串或时间戳等方式 , 防止攻击者得到 webshell 的路径 )

五、 文件解析漏洞

1.IIS 6.0解析利用方法有两种
(1)目录解析:/xx.asp/xx.jpg
(2)文件解析:wooyun.asp;.jpg
第一种,在网站下建立文件夹的名字为 .asp、.asa 的文件夹,其目录内的任何扩展名的文件都被IIS当作asp文件来解析并执行。
第二种,在IIS6.0下,分号后面的不被解析,也就是说wooyun.asp;.jpg会被服务器看成是wooyun.asp
还有IIS6.0 默认的可执行文件除了asp还包含这三种.asa、.cer、.cdx
2.Apache解析漏洞后缀名解析漏洞
Apache 是从右到左开始判断解析,如果为不可识别解析,就再往左判断直到识别。
3.PHP CGI解析漏洞
4.%00截断漏洞
当程序在输出含有chr(0)变量时,chr(0)后面的数据会被停止,换句话说,就是误把它当成结束符,后面的数据直接忽略,这就导致漏洞产生

六、 DDos攻击 分布式拒绝服务(Distributed Denial of service Attack)

1.原理
攻击者想办法让目标服务器的磁盘空间、内存、进程、网络带宽等资源被占满,从而导致正常用户无法访问。
攻击者进行拒绝服务攻击,实际上让服务器实现两种效果:一是迫使服务器的缓冲区满,无法接收新的请求;二是使用IP欺骗,迫使服务器把合法用户的连接复位,影响合法用户的连接。
攻击者是使用傀儡机(俗称“肉鸡”,受病毒木马操控的计算机或服务器)作为攻击平台,通过大量伪装合法的请求占用大量网络资源,以达到使指定目标的网络或服务瘫痪中断。
2.危害:
服务器瘫痪、用户无法正常访问。
3.类型
(1)SYN Flood攻击:这种攻击方法是经典最有效的DDoS方法,主要是通过向受害主机发送大量伪造源 IP 和源端口的 SYN 或 ACK 包,导致主机的缓存资源被耗尽或忙于发送回应包而造成拒绝服务,可通杀各种系统的网络服务。这种攻击由于源头都是伪造的,所以追踪起来比较困难。但是,该攻击实施起来有一定难度,需要大量高带宽的僵尸主机。
(2)TCP 全连接攻击:这种攻击是为了绕过常规防火墙的检查而设计的。一般情况下,常规防火墙大多对于正常的 TCP 连接是放过的,但是很多网络服务程序能接受的 TCP 连接数是有限的。TCP全连接攻击就是通过许多僵尸主机不断地与受害服务器建立大量的 TCP 连接,直到服务器的内存等资源被耗尽而被拖跨, 从而造成拒绝服务。种攻击的特点是可绕过一般防火墙的防护而达到攻击;缺点是需要找很多僵尸主机,且僵尸主机的IP 是暴露,易被追踪。
(3)刷 Script 脚本攻击:这种攻击是跟服务器建立正常的TCP连接, 并不断的向脚本程序提交查询、 列表等大量耗费数据库资源的调用。一般来说, 提交一个指令对客户端的耗费和带宽的占用是几乎可以忽略的,而服务器为处理此请求却可能要从上万条记录中去查出某个记录,这种处理过程对资源的耗费是非常大。攻击者只需通过代理向目标服务器大量递交查询指令,只需数分钟就会把服务器资源消耗掉而导致拒绝服务。这种攻击的特点是可以完全绕过普通的防火墙防护, 轻松找一些代理就可实施攻击;缺点是对付只有静态页面的网站效果会大打折扣,并且会暴露攻击者的IP地址。
4.防御:
(1)采用高性能的网络设备
(2)尽量避免NAT的使用(NAT需要对地址来回转换,转换过程中需要对网络包的校验和进行计算,因此浪费了很多CPU的时间)
(3)充足的网络带宽保证
(4)升级主机服务器硬件
(5)把网站做成静态页面
(6)增强操作系统的TCP/IP栈
(7)安装专业抗DDOS防火墙
附:IP Spoof: 即IP地址欺骗,是一台主机设备冒充另外一台主机的IP地址,与其它设备通信,从而达到某种目的技术。属于IP Spoof类的攻击还有TCP 半连接攻击,也就是SYN Flood攻击

七.目录遍历漏洞

(一).原理
目录遍历(路径遍历)是由于Web服务器或者Web应用程序对用户输入的文件名称的安全性验证不足而导致的一种安全漏洞,使得攻击者通过利用一些特殊字符就可以绕过服务器的安全限制,访问任意的文件(可以是Web根目录以外的文件),甚至执行系统命令。该漏洞常常出现在文件读取或者展示图片等对文件读取交互的功能块。
(二).目录遍历漏洞防御方法
1.对用户的输入进行验证,特别是路径替代字符如“…/”和“~/”。
2.尽可能采用白名单的形式,验证所有的输入。
3.合理配置Web服务器的目录权限。
4.当程序出错时,不要显示内部相关配置细节。
5.对用户传过来的文件名参数进行统一编码,对包含恶意字符或者空字符的参数进行拒绝。
 

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

燕穗子博客

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值