js函数劫持与反劫持
生活随笔
收集整理的這篇文章主要介紹了
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 srvif(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 srvif(confirm('eval方法被調用'))_eval(s);}msg += eval;document.write(msg);/*檢查函數是否有劫持*/function checkJSHook(proc){if(proc.toString().indexOf("[navtiv codde]")>0)return false;elsereturn 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函数劫持与反劫持的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: uploadify组件文件上传那些事
- 下一篇: 如何删除IOS--CISCO IFS简介