JavaScriptサンドボックス
-
24-10-2019 - |
質問
開発者にJavaScriptのサイト用のカスタムアプリをいくつか書いてもらいたいのですが、ユーザーをリダイレクトするようないたずらなことをすることができないので、ボディディスプレイをなしなどに設定するなど、サンドボックスしたいのですが。彼らが必要とする機能はそこに存在するので、私はサンドボックスを作成することを考えていました:
with(Namespace) {
//App code goes here where they can only access Namespace.*
}
これを回避するのは簡単ですか、他にどのような方法を実行できますか?提出されたすべてのアプリをモデレートする必要はありません。
解決
サンドボックスを実施するには、コードが実行される前にコードを検査し、不安定なコードをキャプチャし、見つかった場合は、何らかの形で実行されないようにする必要があります。非常に退屈で、長い間エラーが発生しやすい。
Facebookは少なくとも初期のプラットフォームでこれを行いました。私は開発者として、間違いなくそれを楽しんでいませんでした。それらは使用できるネイティブの方法を制限し、いくつかの周りに限られたラッパーを提供しました。
他のヒント
さて、現時点でコードをサンドボックスするオプションは次のとおりです。
どちらも、aを作成できます 安全な環境 グローバルオブジェクトとDOMへのアクセスが制限されている場合。
これらのプロジェクトの主な目的は、ウィジェットと第三者のWebコンテンツを安全に埋め込むことを可能にすることです。
最初に思い浮かぶのはです eval
. 。それを使用して、ラッパーサンドボックスの外でカスタムコードを実行できます。コードをラップしようとすることで、決定された開発者を停止することは非常に困難です。
リンク 評価の使用に。
所属していません StackOverflow