说明 : 主要的思路就是重写JS函数, 如果学习过高级语言的朋友 就很容易理解

好上代码:

1. 劫持

<html>
<head>
<title>js函数劫持</title>
<script type="text/javascript">
var _alert = window.alert;
window.alert = function (msg)
{
if(confirm('alert方法被调用'))
_alert(msg);
}
var _eval = eval;
eval= function (s)
{
//log ip  send to srv
if(confirm('eval方法被调用'))
_eval(s);
}
alert('hah');
eval('alert(\"ev\");');
</script>
</head>
<body>
</body>
</html>

2.反劫持

 <html>
<head>
<title>js函数反劫持</title>
<script type="text/javascript">
var msg="";
msg= eval+"\n\r";
var _eval = eval;
eval= function (s)
{
//log ip  send to srv
if(confirm('eval方法被调用'))
_eval(s);
}
msg += eval;
document.write(msg);
/*
检查函数是否有劫持
*/
function checkJSHook(proc)
{
if(proc.toString().indexOf("[navtiv codde]")>0)
return false;
else
return true;
}
alert(checkJSHook(eval));
</script>
</head>
<body>
</body>
</html>

为什么使用checkJSHook函数体来判断

因为内置函数和自定义函数返回数据部一样

如下:

function eval() { [native code] }   //内置函数都返回 [native code]
 
function (s) { //log ip send to srv if(confirm('eval方法被调用')) _eval(s); } 

js函数劫持与反劫持相关推荐

  1. 通过JS函数劫持自定义百度云分享提取码

    思路: 通过JS函数劫持,修改"生成百度云分享码"的函数. 方法: 1.打开百度云,选择一个需要分享的文件,点击"分享" 注意,此时先不要点击"创建私 ...

  2. 浅谈javascript函数劫持

    创建时间:2007-12-02 文章属性:原创 文章提交:hkluoluo (luoluonet_at_hotmail.com) by luoluo on 2007-11-30 luoluonet_a ...

  3. 谈谈JS中的函数劫持

    说到劫持,第一反应可能是什么不好的东西.函数劫持并不邪恶,关键是看使用的人.虽然这个概念在前端领域使用较少,但是在安全领域.自定义业务等场景下还是有一定的使用价值的.所以,这一篇文章将会和大家一起去了 ...

  4. ES6的模块化管理、立即执行函数(IIFE):在函数声明后面立即调用、函数劫持

    1.Node.js简介: (1)Node是什么: A.浏览器内核有两个引擎:渲染引擎(渲染html.css).JavaScript引擎(运行JavaScript代码) B.Node是独立于浏览器的Ja ...

  5. 立即执行函数和函数劫持

    一.ES6的类的继承 1.继承的好处:在父类中定义的属性和方法,子类继承后就可以直接使用. 2.类继承过程中的向上转型:子类对象的类型一定是父类的类型,父类对象的类型不能是子类的类型 (1)typeo ...

  6. JS中编写函数去除HTML标签,js函数获取html中className所在的内容并去除标签

    js函数获取html中className所在的内容并去除标签 复制代码 代码如下: function queryClass(classnames){ var classobj= new Array() ...

  7. Ext.NET加入自定义验证JS函数

    ExtJS验证很方便,在使用FormPanel的时候,我们可以很方便的进行验证.比如设置必填项.正则.字段类型等等.比如如下所示: 上面的验证是这么写的: <Listeners><C ...

  8. c/c++/MFC 调用 js 函数代码

    1 首先 .h 文件中定义: 2 3 CComPtr<IHTMLWindow2> m_sphtmlWnd; 4 CComPtr<IHTMLDocument2> m_spHtml ...

  9. js函数声明和函数表达式的区别

    Javascript Function无处不在,而且功能强大!通过Javascript函数可以让JS具有面向对象的一些特征,实现封装.继承等,也可以让代码得到复用.但事物都有两面性,Javascrip ...

  10. 100多个基础常用JS函数和语法集合大全

    网站特效离不开脚本,javascript是最常用的脚本语言,我们归纳一下常用的基础函数和语法: 1.输出语句:document.write(""); 2.JS中的注释为// 3.传 ...

最新文章

  1. Spring Boot 2.2.0 正式发布,大幅性能提升 + Java 13 支持
  2. 日常生活小技巧 -- 惠普 Windows10 进入安全模式
  3. 高可用性HA及Cluster集群
  4. Windows7修改hosts提示:您没有权限在此位置中保存文件
  5. NET环境下有关打印页面设置、打印机设置、打印预览对话框的实现-
  6. 瑞银报告:Waymo在2030年占据全球60%无人出租车市场
  7. 2017 校赛 问题 B: CZJ-Superman
  8. 第一篇SCI (IF5),心得交流(写的字数很多),希望多多交流!
  9. 4. JavaScript Debug Tips
  10. python word转pdf linux_linux环境基于python语言docx转pdf
  11. java基础 第十一章(多态、抽象类、接口、包装类、String)
  12. objdump选项解释
  13. MySQL查询优化和索引优化学习笔记
  14. 计算机二级公共基础知识(四)—— 数据库设计基础
  15. Java中this关键字的用法
  16. 奔跑吧,旅行商 - 当机器学习遇上组合优化
  17. 梦幻西游进入游戏显示服务器程序停止工作,win7系统提示“梦幻西游已停止工作”的解决方法...
  18. 各个小组对于“我爱淘”的评价
  19. 自学三个月编写简单走迷宫游戏
  20. office 向程序发送命令时出现问题

热门文章

  1. 成功解决:[‘‘, ‘‘, __ob__: Observer]
  2. Html实现QQ音乐首页(响应式)
  3. 韩国瑜会见陆委会主委陈明通:别给高雄念紧箍咒
  4. Java输入/输出流
  5. MicroSIP软电话的安装和使用--从电脑上接听和拨打电话
  6. 基于Scala版本的TMDB大数据电影分析项目
  7. Jeecg框架 修改首页
  8. SetTimer函数总结
  9. dsp正弦波信号发生器c语言编程实例,应用DSP技术的正弦波发生器方案之程序设计...
  10. Java集合框架篇-64-TreeSet集合练习题2