js函数劫持与反劫持
说明 : 主要的思路就是重写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函数劫持与反劫持相关推荐
- 通过JS函数劫持自定义百度云分享提取码
思路: 通过JS函数劫持,修改"生成百度云分享码"的函数. 方法: 1.打开百度云,选择一个需要分享的文件,点击"分享" 注意,此时先不要点击"创建私 ...
- 浅谈javascript函数劫持
创建时间:2007-12-02 文章属性:原创 文章提交:hkluoluo (luoluonet_at_hotmail.com) by luoluo on 2007-11-30 luoluonet_a ...
- 谈谈JS中的函数劫持
说到劫持,第一反应可能是什么不好的东西.函数劫持并不邪恶,关键是看使用的人.虽然这个概念在前端领域使用较少,但是在安全领域.自定义业务等场景下还是有一定的使用价值的.所以,这一篇文章将会和大家一起去了 ...
- ES6的模块化管理、立即执行函数(IIFE):在函数声明后面立即调用、函数劫持
1.Node.js简介: (1)Node是什么: A.浏览器内核有两个引擎:渲染引擎(渲染html.css).JavaScript引擎(运行JavaScript代码) B.Node是独立于浏览器的Ja ...
- 立即执行函数和函数劫持
一.ES6的类的继承 1.继承的好处:在父类中定义的属性和方法,子类继承后就可以直接使用. 2.类继承过程中的向上转型:子类对象的类型一定是父类的类型,父类对象的类型不能是子类的类型 (1)typeo ...
- JS中编写函数去除HTML标签,js函数获取html中className所在的内容并去除标签
js函数获取html中className所在的内容并去除标签 复制代码 代码如下: function queryClass(classnames){ var classobj= new Array() ...
- Ext.NET加入自定义验证JS函数
ExtJS验证很方便,在使用FormPanel的时候,我们可以很方便的进行验证.比如设置必填项.正则.字段类型等等.比如如下所示: 上面的验证是这么写的: <Listeners><C ...
- c/c++/MFC 调用 js 函数代码
1 首先 .h 文件中定义: 2 3 CComPtr<IHTMLWindow2> m_sphtmlWnd; 4 CComPtr<IHTMLDocument2> m_spHtml ...
- js函数声明和函数表达式的区别
Javascript Function无处不在,而且功能强大!通过Javascript函数可以让JS具有面向对象的一些特征,实现封装.继承等,也可以让代码得到复用.但事物都有两面性,Javascrip ...
- 100多个基础常用JS函数和语法集合大全
网站特效离不开脚本,javascript是最常用的脚本语言,我们归纳一下常用的基础函数和语法: 1.输出语句:document.write(""); 2.JS中的注释为// 3.传 ...
最新文章
- Spring Boot 2.2.0 正式发布,大幅性能提升 + Java 13 支持
- 日常生活小技巧 -- 惠普 Windows10 进入安全模式
- 高可用性HA及Cluster集群
- Windows7修改hosts提示:您没有权限在此位置中保存文件
- NET环境下有关打印页面设置、打印机设置、打印预览对话框的实现-
- 瑞银报告:Waymo在2030年占据全球60%无人出租车市场
- 2017 校赛 问题 B: CZJ-Superman
- 第一篇SCI (IF5),心得交流(写的字数很多),希望多多交流!
- 4. JavaScript Debug Tips
- python word转pdf linux_linux环境基于python语言docx转pdf
- java基础 第十一章(多态、抽象类、接口、包装类、String)
- objdump选项解释
- MySQL查询优化和索引优化学习笔记
- 计算机二级公共基础知识(四)—— 数据库设计基础
- Java中this关键字的用法
- 奔跑吧,旅行商 - 当机器学习遇上组合优化
- 梦幻西游进入游戏显示服务器程序停止工作,win7系统提示“梦幻西游已停止工作”的解决方法...
- 各个小组对于“我爱淘”的评价
- 自学三个月编写简单走迷宫游戏
- office 向程序发送命令时出现问题
热门文章
- 成功解决:[‘‘, ‘‘, __ob__: Observer]
- Html实现QQ音乐首页(响应式)
- 韩国瑜会见陆委会主委陈明通:别给高雄念紧箍咒
- Java输入/输出流
- MicroSIP软电话的安装和使用--从电脑上接听和拨打电话
- 基于Scala版本的TMDB大数据电影分析项目
- Jeecg框架 修改首页
- SetTimer函数总结
- dsp正弦波信号发生器c语言编程实例,应用DSP技术的正弦波发生器方案之程序设计...
- Java集合框架篇-64-TreeSet集合练习题2