日期:2010-09-29 00:45:00 来源:本站整理
各个语言格局尺度差别招致的安全问题[网络技术]
本文“各个语言格局尺度差别招致的安全问题[网络技术]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
本日看到mindedsecurity的大牛写的一篇blog《A Twitter DomXss, a wrong fix and something more》里面提到的twitter的一个dom-xss错误的fix方法,而招致这个错误fix的关键就是对javascript的replace函数的错误所用:
var c = location.href.split("#!")[1];
if (c) {
window.location = c.replace(":", "");
} else {
return true;
}
在javascrpt里replace()的格局尺度默许不支持全局替换,也就是说上面代码里的c.replace(":", "")只会替换掉第一个: 那么我们用::便可以绕过了,而要让js的replace()支持全局替换要所用全局标志g 如:c.replace(":","","g") 大概 c.replace(/:/g,"").
那么程序员为什么会呈现这样初级的错误?在我们开辟历程里,很多脚本、语言穿插所用,比方我有一次搞个‘项目’,用了asp php js vbs perl等脚本,但是各个语言格局尺度是不一样的,招致很简单呈现上面那样的初级错误!
比方上面的replace函数,在php vbs/asp里默许就是全局替换.
php>php -r "print str_replace('80', '90', '80vul80vul');"
90vul90vul
wscript.echo replace("80vul80vul", "80","90")
C:\>cscript v.vbs
Microsoft (R) Windows Script Host Version 5.6
版权全部(C) Microsoft Corporation 1996-2001.保存全部权利.
90vul90vul
招致这样的问题表现得对比常见的还有就是注释标记的问题,以及转换标记的问题... 别的这类的问题还表目前各大数据库的sql脚本格局尺度上
以上是“各个语言格局尺度差别招致的安全问题[网络技术]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |
评论内容只代表网友观点,与本站立场无关!
评论摘要(共 0 条,得分 0 分,平均 0 分)
查看完整评论