私はゲームのmodding apiを使っていますが、それは興味深いですが、実際には関係ないですし、Lua環境は非常に制限されており、setfenv
、私はloadstring、pcallなどへのアクセス権を持っています。私の質問は、ユーザーが提供する「安全でない」コードを実行し、環境変更機能にアクセスすることなくアクセスできる機能を制限することをどのようにお勧めしますか? (ブラックリストではなくホワイトリストの関数/値が好きですが、何でも入手できます)loadstring経由でLuaの信頼できないコードを実行しています
1
A
答えて
3
ルア5.1では、セキュアなサンドボックスを作成するためにsetfenvが必要です(標準的な手順についてはthis answerを参照)。だから、あなたがsetfenvにアクセスできない場合、私はそれができないとは思わない。
また、あなたが働いている環境がsetfenvを無効にしていて、悪意のあるバイトコードのロードを回避するためにloadstringの周りにラッパーを置いていた場合(再び私がリンクした答えを見てください)、設定せずにスクリプトを実行できるかもしれませんそのための特別な環境を整えてください。それは本当にあなたの現在の環境の詳細が安全であるかどうかによって異なります。
関連する問題
- 1. Windows Hyper-Vコンテナで信頼できないコードを実行しています
- 2. 信頼できないPureScriptコードの実行
- 3. chrootを使って信頼できないコードを実行する
- 4. 信頼できないコードを安全に実行するには?
- 5. Django AppでDockerを使用して信頼できないコードをコンパイルして実行する
- 6. Lua:コンテキストをloadstringに渡しますか?
- 7. PHP言語などの信頼できないコードを実行できますか?
- 8. Node.js信頼できないユーザーが送信したコードのサンドボックス
- 9. LAN経由のソケット経由でファイルを正しく受信できない
- 10. Java経由でUNIXでコマンドラインを実行しています
- 11. Antファイルがクラスファイル経由でJavaアプリケーションを実行できない
- 12. バッチファイル経由でabaqus pythonスクリプトを実行していますか?
- 13. Spark Job Server経由でジョブを実行しています
- 14. .NET経由でcmdコマンドを実行していますか?
- 15. apache-mavenサーバー経由でmavenプロジェクトを実行しています
- 16. なぜLuaでloadstringを使用して小数点を得ましたか
- 17. 実際のアンドロイドデバイスでアンドロイドスタジオ経由でアプリを実行できない
- 18. アドレスバー経由でデータを正しく送信できない
- 19. ノードを経由してサーバ上でRコードを実行
- 20. Gulp経由でノードモンを実行しないようにする
- 21. 依頼モジュールをインストールしようとしても(pip3経由で)リクエストモジュールを実行しようとしてもうまくいかないのですか?
- 22. プロキシ経由でPHPMailerでメールを送信していますか?
- 23. TCP経由でC#でパケットを送信していますか?
- 24. Inno Setup:常にインターフェイス経由でタスクを実行します。コマンドラインで実行しないでください
- 25. 大きなファイルを処理している間にwindowsサービス経由でffmpeg.exeを実行できない
- 26. Maven経由でJettyを実行しているクラスパスの問題
- 27. Eclipse経由のSVN - チェックアウトしたコードを実行できません
- 28. アンドロイドアプリでブルートゥースrfcomm経由でデータを送受信できない
- 29. コードがVolley経由でmysqlに送信されない
- 30. セレン - 私はセレンと次のコードを実行し、信頼できない証明書に
パフォーマンスを大幅に犠牲にしたい場合は、いくつかのLua-in-Luaエミュレータが利用できます。 (http://lua-users.org/wiki/LuaInterpreterInLua) – Stormswept