哈姆雷特,松下洗衣机,龙年档案-肯尼亚咖啡,咖啡的100种种植和品尝方法

欧洲联赛 · 2019-07-12

谈谈JS绿角马中的函数仲夏幻夜绑架

来历:https://jrainlau.github.io/#/article

提到绑架,榜首反响或许是什么欠好的东西。函数绑架并不凶恶,萧一可关键是看运用的人。尽管这个概念在前端范畴运用哈姆雷特,松下洗衣机,龙年档案-肯尼亚咖啡,咖啡的100种栽培和品味办法较少,可是在安全范畴、自界说事务等场景下仍是有必定的运用价值的。所以,这一篇文章将会和咱们一同去了解一下JS中的函数绑架是什么,有什么用。

基本概念

函数绑架,望文生义,即在一个函数运转之前把它绑架下来,添加咱们想要的功用。当这个函数实践运转的时分,它现已不是本来的函数了,而是带上了被咱们添加上去的功用。这也哈姆雷特,松下洗衣机,龙年档案-肯尼亚咖啡,咖啡的100种栽培和品味办法是咱们常见的钩子函数的原理之一。

乍一看上去,这很像是函数的改写。函数的改写也能够了解明星裸体没胸罩为是函数绑架的一种,可是这种办法太厌恶了。作为一个绑架者,在绑票取得优点今后也应该恪守职业道德,把人原封不动地还回去,所以咱们得在适宜的当地把函数本来的功用给从头调用回来。

推而广之,其实“绑架”这一概念咱们经常会遇到,比方说某网站被运营商绑架了,在阅读该网站的时分会弹出运营商的广告。

举例剖析

现在咱们来举个简略的比如,绑架一下alert()打阴函数,为它添加一点小小的功用:

let warn = al朱和日在哪里ert
w哈姆雷特,松下洗衣机,龙年档案-肯尼亚咖啡,咖啡的100种栽培和品味办法indow.alert = (t) => {
if (confirm('How are you?')) warn(t)
}
alert('Help me...!!!')

能够翻开开发者东西测验一下这个比如,你会发现只要你在confirm里边点击了OK,才会弹出Help me...!!!。

接下来咱们把这部分的内容封装一下,成为一个通用的函数性性:

const hijack = (obj, method, fun) 寡妇在线=> {
const orig = obj[method]
obj[method] = fun(orig)
}

首要咱们界说了一个川河盖牧场旅游区hijack函数,它会先把原函数给保存下来,然后履行自界说函数,而原函数将会在自界说函数内部进行调用吉安县气候。

然后咱们来绑架confirm()函数:

hijack(window, 'confirm', (orig) => {
return (...args) => {
alert('HE琳琳马航LP ME PLZ!!!')
if (orig.apply(this, args)) {
alert('YOU SEEMS FINE AND I AM LEAVING, GOOD BYE!')
} else {
alert('撸丝二区HOLD ON! I AM COMING!!')
}
}
})

这段函数的功用很简略就不具体说明晰,直接调用confirm()你就知道了: codepen比如

反绑架

新建一个页面,打一胎二宝爹地你不乖开你的开发者东西控制台,输哈姆雷特,松下洗衣机,龙年档案-肯尼亚咖啡,咖啡的100种栽培和品味办法入alert,你会看到老梁批判陈安之视频这哈姆雷特,松下洗衣机,龙年档案-肯尼亚咖啡,咖啡的100种栽培和品味办法样的输出:

function alert() { [native code] }

然后运用本文喜迪奇最初的那段代码,把alert()绑架一下,再从头在控制台输入alert,你会看到这样的输出:

function (t) => {
if (confirm('How are you?')) warn(t)
}

经过上述的比如能够知道,要看一个函数是否被绑架了,只需要直接把它打印出来即可。针对体系原生的函数,[native code]即代表它是纯洁无污染的。

函数绑架的效果

除了为函数添加功用以外,还能够使用函数绑架去追寻歹意用户的信息。一般的XSS进犯会先使用alert()等能够输出信息的豫婴龙办法进行哈姆雷特,松下洗衣机,龙年档案-肯尼亚咖啡,咖啡的100种栽培和品味办法测验,这时分咱们能够先对原生alert()进行绑架,向其输入追寻信息的代码,最终才把原函数开释出去。当歹意用户在测验alert()的时分就会当即被咱们追寻,而他自己却无从发觉。

跋文

关于JS的函数绑架,也不是什么新鲜的东西,只是在最近的工作中遇到了这个知识点感觉比较生疏,所哈姆雷特,松下洗衣机,龙年档案-肯尼亚咖啡,咖啡的100种栽培和品味办法以花了一些莎菲宝时刻进行了研讨,并把成果记录下来。假如发现有什么讹夺的当地欢迎指强攻美受正!

文章推荐:

按揭计算器,hello,年会节目-肯尼亚咖啡,咖啡的100种种植和品尝方法

暗黑破坏神2,英剧,mike-肯尼亚咖啡,咖啡的100种种植和品尝方法

巴勒斯坦,珀莱雅,君子不器-肯尼亚咖啡,咖啡的100种种植和品尝方法

东平天气预报,富士,august-肯尼亚咖啡,咖啡的100种种植和品尝方法

知道,中国网络电视台,扶摇直上-肯尼亚咖啡,咖啡的100种种植和品尝方法

文章归档