2012-09-18 46 views
-2

讓我說我想搞砸特定的網站,並在那裏注入一些功能與頁面交互。那麼網站管理員可以通過檢查窗口對象來檢查是否只有由他定義的函數,並且如果有差異由ajax返回到他的服務器,那麼實際上我的代碼是否可以被竊取/以這種方式查看?我的注入JavaScript可以被網站作者看到嗎?

回答

2

如果您在網站的全局上下文中注入代碼,網站可能使用JavaScript來檢測此問題,並且通過在函數上使用.toString(),獲取注入函數的源代碼。

但是,這種情況不太可能,您可以將大部分代碼放入匿名自執行函數中,該函數僅在註冊事件時使用代理函數,然後調用您的實際邏輯 - 並且這些函數將無法在外部訪問匿名關閉。現在

(function() { 
    function doCrazyStuff() { /* OMG THIS IS TOP SEKRET! */ } 
    function crazyStuffProxy() { doCrazyStuff(); } 
    window.onload = crazyStuffProxy; 
}); 

有人訪問window能拿crazyStuffProxy的代碼,但就沒有訪問doCrazyStuff的方式。

當然,這隻適用於不使用<script>標籤注入所有代碼的情況。但是,因爲你標記了你的問題你的代碼可能運行在不同的上下文中,除了你實際添加到窗口或DOM元素的代碼,所以這應該不成問題...

0

這取決於。我可以寫出一些非常貪婪的東西,並檢測事情併發送。這需要很多工作來檢測所有這些。

它不太可能。

相關問題