私はV8を初めて使い、Python Webアプリケーションで使用する予定です。目的は、ユーザーが特定のJSスクリプトを実行して実行できるようにすることです。明らかにこれはセキュリティ上の脅威なので、v8をロックダウンする方法を文書化しているリソースを探しています。たとえば、呼び出せる関数のホワイトリストを作成できますか?または、参照できないライブラリのブラックリスト?V8を「ロックダウン」する方法は?
答えて
V8インスタンスを単にロックする(つまり、chrootでパーミッションを与えない)と、一定時間が経過してもプロセスが終了しない場合はプロセスを終了させますか?
プレーンなV8(つまりnode.jsのようなもの)を使用していない場合、危険な機能はありません。 JavaScript自体には、ファイルシステム関数などを含むstdlibはありません。
悪意のあるユーザーが行うことができる唯一の事は、無限ループ、深い再帰およびメモリ豚の作成です。
後悔して申し訳ありませんが、私もこれに興味があります。ユーザーがメモリ/処理クォータを超えないようにするにはどうすればよいですか? – slezica
いいえ、考えられません。このために[新しい質問を投稿](http://stackoverflow.com/questions/ask)してください。 – ThiefMaster
私はちょうどこれに関する新しい質問を投稿しました:http://stackoverflow.com/questions/11637075/how-do-i-prevent-malicious-javascript-in-v8-with-python – Gattster
- 1. Grails spring-security-ui controllersをロックダウンする方法は?
- 2. アイデンティティ・フレームワーク・ユーザー・ロックダウン
- 3. v8でコールバックの送信元情報を判断する方法
- 4. V8でスクリプトの元のファイル名を取得する方法
- 5. v8の値を配列に変換する方法
- 6. iOSに「ロックダウン」プロフィールはありますか?
- 7. V8のJavaScriptコールバックにオブジェクトを渡す方法
- 8. V8を操作する
- 9. v8 :: Isolateとv8 :: Contextの違いは何ですか?
- 10. シュリンクラップ、npm-ロックダウン、またはnpmシールを使用する場合
- 11. デックス(V8)
- 12. v8でnodejsをプロファイリング
- 13. 窓にV8をコンパイル
- 14. setTimeoutとV8
- 15. ビネットV8のアップグレード
- 16. V8 C++関数からjavascriptモジュールに構造体を戻す方法
- 17. ロックダウン/代替シェルのコントロールウィンドウのボリューム
- 18. Webブラウザのロックダウン:どのように?
- 19. V8シェルのDOM API
- 20. V8でのJavascriptユニットテスト
- 21. Bing Maps v8 pushpinツールチップ
- 22. 「Hello World」+ JS V8 + VS2010
- 23. Node.js/v8:スタートアップを高速化するために独自のスナップショットを作成する方法
- 24. V8コンパイルされたjavascriptをEXEにするには?
- 25. v8 :: Stringの前に新しいv8 :: Arrayを作成すると、セグメンテーションフォルトが発生しますが、v8 :: Stringとv8 :: FunctionTemplateの原因になるのはなぜですか?
- 26. IPを使用してFTP経由でフィルタリングされたファイルのリストを取得する方法* Works V8
- 27. node.js/V8は.NETまたはJavaを置き換えますか?
- 28. V8とECMAScriptの相違点
- 29. V8 JavaScriptエンジンとMac App Store
- 30. V8 ::アイソ::新ヌルアクセス違反
なぜ彼らはPythonスクリプトを提出できないのですか?これはあなたのアーキテクチャを単純化すると思います。 :-)(それを言及しなければならなかった)。そして、はい、それらのスクリプトのための安全なPythonサンドボックスを作成することが可能です – Kos
@Kosどのように?私も興味を持っていますが、私はどこでもPythonが手ほどきできないと読んでいます。 – slezica