私は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. V8 ConsStringをフラット化する方法は?
- 2. Grails spring-security-ui controllersをロックダウンする方法は?
- 3. MongoDBデータベースを安全にロックダウンする方法は?
- 4. nodejs v8.getHeapStatistics方法
- 5. 許可と認証を使用してMVCを "ロックダウン"する方法は?
- 6. アイデンティティ・フレームワーク・ユーザー・ロックダウン
- 7. iOSに「ロックダウン」プロフィールはありますか?
- 8. v8のフィールド関数をオーバーライドする方法
- 9. v8の値を配列に変換する方法
- 10. V8でC++クラスメンバーを公開する方法
- 11. IBM MobileFirst V8で接続をテストする方法
- 12. V8でスクリプトの元のファイル名を取得する方法
- 13. v8でコールバックの送信元情報を判断する方法
- 14. Typo3 v8ウェブサイトを迷惑メールにする方法
- 15. javascriptの実装をデバッグする方法V8で
- 16. シュリンクラップ、npm-ロックダウン、またはnpmシールを使用する場合
- 17. ARM v8をサポートしてUnityをAndroid Studioにエクスポートする方法は?
- 18. Bing Maps v8、V8のレストサービスURL
- 19. V8のJavaScriptコールバックにオブジェクトを渡す方法
- 20. V8を操作する
- 21. ターミナルのChromeとNodeJSのV8 Javascript Engineバージョンの比較方法は? <strong>V8 Javascriptのエンジン</strong>で
- 22. v8 :: Isolateとv8 :: Contextの違いは何ですか?
- 23. Bing Maps V8のnavigationBarOrientationとnavigationBarModeを行う方法
- 24. v8エンジンをdllに埋め込む方法(C++プロジェクト)
- 25. ウィザードボタンからフォームを開く方法 - Odoo V8
- 26. ロックダウン/代替シェルのコントロールウィンドウのボリューム
- 27. Webブラウザのロックダウン:どのように?
- 28. android system v8とリンクするには?
- 29. デックス(V8)
- 30. V8ライブラリサイズ
なぜ彼らはPythonスクリプトを提出できないのですか?これはあなたのアーキテクチャを単純化すると思います。 :-)(それを言及しなければならなかった)。そして、はい、それらのスクリプトのための安全なPythonサンドボックスを作成することが可能です – Kos
@Kosどのように?私も興味を持っていますが、私はどこでもPythonが手ほどきできないと読んでいます。 – slezica