web安全问题

【SQL注入】

原理:SQL命令可查询、插入、更新、删除等,命令的串接,而以分号字元为不同命令的区别;SQL命令对于传入的字符串参数是用单引号资源所包起来的;SQL命令中,可以注入注解。

预防:在设计程序的时候,完全使用参数化来设计数据访问功能;在组合SQL字符串时,先针对所传入的参数作字元取代;如果使用PHP开发网页程序的话们可以打开魔术方法,将所有网页参数传入;使用连接组件;或者其他已经修正过SQL注入的数据库。

【XSS攻击】

原理:(1)非持久型XSS攻击:仅对当次的页面访问产生影响,非持久型XSS攻击,要求用户访问一个被攻击者篡改之后的链接 ,用户访问该链接的我稍后,被植入的攻击脚本被用户游览器执行,从而达到攻击目的。

(2)持久型XSS攻击:持久型XSS攻击会把攻击者的数据存储在服务端,攻击行为将伴随着攻击数据一直存在。

预防:1)基于特征的防御:XSS漏洞和SQL注入一样,都是利用了web页面编写不完善,所以每个漏洞所利用和针对的弱点都不尽相同,这就给XSS漏洞防御带来了困难:不可能以单一特征来概括所有的XSS攻击。传统XSS预防采用特征匹配的方式,在所有提交的信息中都进行匹配检查,对于这类型的XSS攻击,一般采用的模式匹配会需要对JavaScript这个关键字进行检索,一旦发现提交的信息中包含JavaScript,就认定为XSS攻击。但是可以通过插入字符或者完全编码的方式进行躲避。

2)基于代码修改的防御:对所有用户提交的内容进行可靠的输入验证,包括对URL、查询关键字、HTTP投、POST数据等,仅接受指定长度范围的、采用适当格式、采用所与其的字符的内容提交,其他的一律过滤掉。实现session标记,CAPTCHA系统或者HTTPS引用头检查,一方功能被第三方网站所执行,确认接收的内容被妥善规范化,仅包含最小的、安全的Tag,去掉任何对远程内容的引用,使用httponly的cookie。

【CSRF攻击】

CSRF攻击原理比较简单,假设webA为存在CSRF漏洞的网站,web B为攻击者构建的恶意网站,UserC为webA网站的合法用户。

1.用户C打开浏览器,访问受信任网站A,输入用户名和密码请求登录网站A;

2.在用户信息通过验证后,网站A产生Cookie信息并返回给浏览器,此时用户登录网站A成功,可以正常发送请求到网站A;

3.用户未退出网站A之前,在同一浏览器中,打开一个TAB页访问网站B;

4.网站B接收到用户请求后,返回一些攻击性代码,并发出一个请求要求访问第三方站点A;

5.浏览器在接收到这些攻击性代码后,根据网站B的请求,在用户不知情的情况下携带Cookie信息,向网站A发出请求。网站A并不知道该请求其实是由B发起的,所以会根据用户C的Cookie信息以C的权限处理该请求,导致来自网站B的恶意代码被执行

防范:1检查referer字段:http头中有一个referer字段用来博鳌家请求来源于哪个地址。在处理敏感数据的时候,通常来说referer字段应和请求的地址位于同一域名下。如果是CSRF攻击那么,referer字段应该是包含恶意网址的地址,那么服务器就可以识别出恶意的访问。

2)添加token校验:CSRF的本质在于攻击者欺骗用户去访问自己设置的地址,所以如果在要求访问敏感数据请求的时候,要求用户浏览器提供不保存在cookie中,并且攻击者无法伪造的数据作为校验,那么攻击者就无法在执行CSRF攻击。这种数据通常是表单中的一个数据项。服务器将其生成并附加在表单中,其内容是一个伪乱数。当客户端通过表单提交请求时,这个伪乱数也一并提交上去以供校验。正常的访问时,客户端浏览器能够正确得到并传回这个伪乱数,而通过CSRF        传来的欺骗性攻击中,攻击者无从事先得知这个伪乱数的值,服务器端就会因为校验token的值为空或者错误,拒绝这个可疑请求

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值