特定のサイトをいじって、ページと対話するためにそこにいくつかの関数を注入したいとします。次に、Webサイト管理者は、ウィンドウオブジェクトをチェックして、自分で定義された関数しかない場合、およびajaxによってサーバーにビームバックされる違いがあるかどうかを確認できます。実際、私のコードはそのように盗まれたり見られたりする可能性がありますか?
2 に答える
2
Webサイトのグローバルコンテキストでコードを挿入すると、そのWebサイトはJavaScriptを使用してこれを検出.toString()
し、関数で使用することにより、挿入された関数のソースコードを取得できます。
ただし、それはほとんどあり得ないことであり、イベントなどを登録するときにプロキシ関数のみを使用する匿名の自己実行関数にコードの大部分をいつでも配置できます。この関数は、実際のロジックを呼び出します。これらの関数は、匿名クロージャの外部ではアクセスできません。
(function() {
function doCrazyStuff() { /* OMG THIS IS TOP SEKRET! */ }
function crazyStuffProxy() { doCrazyStuff(); }
window.onload = crazyStuffProxy;
});
これで、にアクセスできる人window
はのコードを取得できますが、crazyStuffProxy
にアクセスする方法はありませんdoCrazyStuff
。
もちろん、これは、<script>
タグを使用してすべてのコードを挿入しない場合にのみ適用されます。しかし、質問にopera-extensionのタグを付けたので、実際にウィンドウまたはDOM要素に追加するコードを除いて、コードはおそらく別のコンテキストで実行されるため、問題にはなりません...
于 2012-09-18T11:19:28.580 に答える
0
場合によります。私は本当に貪欲で、起こっていることを検出してそれを送る何かを書くことができました。そのすべてを検出するには、多くの作業が必要になります。
可能性は低いです。
于 2012-09-18T11:17:42.263 に答える