js函数劫持与反劫持
2012-06-25 10:36
176 查看
说明:主要的思路就是重写JS函数,如果学习过高级语言的朋友就很容易理解
好上代码:
1.劫持
2.反劫持
为什么使用checkJSHook函数体来判断
因为内置函数和自定义函数返回数据部一样
如下:
好上代码:
1.劫持
<html> <head> <title>js函数劫持</title> <scripttype="text/javascript"> var_alert=window.alert; window.alert=function(msg) { if(confirm('alert方法被调用')) _alert(msg); } var_eval=eval; eval=function(s) { //logipsendtosrv if(confirm('eval方法被调用')) _eval(s); } alert('hah'); eval('alert(\"ev\");'); </script> </head> <body> </body> </html>
2.反劫持
<html> <head> <title>js函数反劫持</title> <scripttype="text/javascript"> varmsg=""; msg=eval+"\n\r"; var_eval=eval; eval=function(s) { //logipsendtosrv if(confirm('eval方法被调用')) _eval(s); } msg+=eval; document.write(msg); /* 检查函数是否有劫持 */ functioncheckJSHook(proc) { if(proc.toString().indexOf("[navtivcodde]")>0) returnfalse; else returntrue; } alert(checkJSHook(eval)); </script> </head> <body> </body> </html>
为什么使用checkJSHook函数体来判断
因为内置函数和自定义函数返回数据部一样
如下:
functioneval(){[nativecode]}//内置函数都返回[nativecode]
function(s){//logipsendtosrvif(confirm('eval方法被调用'))_eval(s);}
相关文章推荐
- 通过JS函数劫持自定义百度云分享提取码
- 关于js 函数劫持
- 谈谈JS中的函数劫持
- js中的函数劫持
- Js字符串操作函数大全
- js空格处理函数
- mongodb11天之屠龙宝刀(九)js函数入门:MongoDB基于js的数据类型修改
- js(javascript)自定义的DateAdd和DateDiff函数以及当前日期的取法
- prototype.js常用函数
- js函数中的预编译
- myeclipse10中表单中的JS函数无法写return,onsubmit="return check();"处出错
- js window.onload 加载多个函数
- 用js互相调用iframe页面内的js函数
- js中函数声明与函数表达式以及匿名函数的理解
- js中的字符串操作函数
- JS函数名为click时遇到的问题
- js笔记之函数的arguments对象的学习
- js中常用内部函数
- js 动态添加标签(新增一行,其实很简单,就是几个函数的应用)
- JS通用表单验证函数,基于javascript正则表达式http://www.ccvita.com/60.html