2011-11-04 2 views
19

私はJSライブラリに取り組んできました。たとえば、ユーザーが独自のコールバックを定義してコマンドを実行できるようにするGithubのデモページをセットアップしたいと考えています。jsFiddleは危険なしにユーザー定義のJavaScriptをどのように許可して実行しますか?

私は「eval()は悪である」と私はスクリプトのeval()は、XSSやその他のセキュリティ上の問題につながる可能性がどのようにブラインド見ることができます知っています。私はいくつかの代替スキームを調理しようとしています。

私は本当にjsFiddleのインタラクティブ機能を楽しんでいます。私はそのソースを見てきましたが、jsFiddleが危険を伴わずにユーザ定義のJavaScriptをどのように許可して実行するかについて、誰かがここでレイアウトできることを願っていました。サードパーティ製のエコーサーバーを必要としない限り、私はこのアプローチをエミュレートすることができます。

答えて

24

jsFiddleは別のドメインのユーザースクリプトhttp://fiddle.jshell.nettry it and see)を実行します。
したがって、親フレームと対話できず、Cookieを盗むことはできません。

実際には、静的ページをJavascriptのクエリ文字列から読み取る別のドメインに配置することで、別のサーバーを使用せずにこれを実行できます。
ページタイトルを使用して返信することができます(敵もそうすることができます)。

+0

別のドメインで実行するとはどういう意味ですか?JavaScriptを実行するページを含むiFrameを読み込みますか? – buley

+0

@editor:そうです。 '