ユーザーが自分のコードを自分のプロファイルに埋め込むことができるメンバーシップ Web サイトがあります。YouTube や Javascript 埋め込みコードなどの埋め込みコードをプロフィールに含めることを許可したいと思います。
JsFiddle.net がこれを実行できることに気付きました。このセキュリティを複製する方法を知っている人はいますか?
助けてくれてありがとう!
ユーザーが自分のコードを自分のプロファイルに埋め込むことができるメンバーシップ Web サイトがあります。YouTube や Javascript 埋め込みコードなどの埋め込みコードをプロフィールに含めることを許可したいと思います。
JsFiddle.net がこれを実行できることに気付きました。このセキュリティを複製する方法を知っている人はいますか?
助けてくれてありがとう!
ユーザーが送信した HTML、CSS、および JavaScript専用の完全に別のドメイン名 (例: 「exampleusercontent.com」)を設定します。このコンテンツがメイン ドメイン名を介して読み込まれることを許可しないでください。次に、iframe を使用してページにユーザー コンテンツを埋め込みます。
単純なフレーミングよりも緊密な統合が必要な場合はwindow.postMessage()
、異なるフレーム内のスクリプトが制御された方法で相互に通信できるようにすることが役立つ場合があります。
あるいは、Google Cajaは、サードパーティの JavaScript をサンドボックス化するためのオープンソース コンパイラですが、時折誰かが脆弱性を発見しています。
唯一の防御層として Caja に依存したくない場合があります。結局、Facebook は iframe サンドボックス アプローチを支持して、同様のシステム (FBML/FBJS と呼ばれる) を断念しました。
悪意のあるコード インジェクション、SQL インジェクションなどからのセキュリティが必要だと思います。
フォームが送信されたら、入力サーバー側を検証する必要があります。期待どおりに検証する限り、問題はありません。JavaScript 内で行う唯一の検証 (ある場合) は、ユーザーがフォームに情報を追加し、どこが間違っているかを確認できるようにすること、つまり、支援することです。
過去に YouTube API を使用して動画エントリを検証しました。Vimeo に API があるかどうかはわかりませんが、ない場合は驚くでしょう。