私はLuaを新しくしていて、設定ファイルでlua構文を制限することができるかどうか尋ねたいですか? configローディングはjailで実行する必要があることは分かっていますが、ロードするconfigファイルにはwhile 1 do end
をどのように対処できますか?設定で文字列、代入、テーブルのみを許可する方法はありますか?そうでない場合、luaファイルに望ましくない構文が含まれていないことを確認する最も良い方法は何ですか?唯一の解決策は手動の事前解析ですか?lua設定ファイルを安全にする方法
2
A
答えて
7
あなたはすでにLuaで「サンドボックス」について知っているようです。残されているのは、あなたが無限ループのような悪意のあるコンストラクトを言うときです。そして、それを解決するには、停止問題を解決する必要があります。これは実用的ではない。
Nuaより長い時間がかかるとスクリプトが中断されるように、タイマーを設定してLuaインタプリタを実行するだけで、すべての悪意のあるコンテンツを「手動で」解析して欲しいと思うのではないでしょうか? ?
0
ルアで特定の構文を明示的に禁止する場合は、実際にファイルを自分でスキャンする必要があります。これらの構成要素には、構成ファイルでも有効な用途があるので、ユーザーができることを制限していることに注意してください。
文字列とコメントの内容を無視する単純なLuaレクサーを書くのは難しくありませんが、return
以外のLuaキーワードのいずれかでエラーが発生します。適切なサンドボックス化(つまり、呼び出すことのできる関数がない)があれば、悪意のあるものを除外するのに十分なはずです。
また、Lua 5.1では、パーサーが非テキストデータ(つまり、コンパイル済みのLuaバイトコード)を解析しないようにすることはできません。 5.2では、ローダーがテキストのみを認識し、バイトコードを拒否するように強制する特定のAPIサポートを提供しています。
関連する問題
- 1. Jenkinsの設定を安全にバックアップする方法は?
- 2. MySQLパブリックサーバiMacを設定する最も安全な方法
- 3. laravelのクッキーで安全なフラグを設定する方法5.4
- 4. luaテーブルスレッドは安全ですか?
- 5. 安全なPHPデータベース設定
- 6. HTTP Apache - 安全なクッキーのためにヘッダーにparamを設定する方法?
- 7. SimpleClassNameからSpringにBean名を安全に設定する方法
- 8. 安全なストレージスペースにファイル(csv)ファイルをiPhoneアプリを通じて安全にアップロードする方法は? (xcode、secure)
- 9. 共有Luaスクリプトの安全性
- 10. Unixドメインソケットのグループ所有権を安全に設定する方法は?
- 11. postfixをGmailのsmtpリレーとして安全に設定する方法
- 12. php-engine設定ファイルを非表示にする/安全にするベストプラクティス?
- 13. ファイルをアンドロイドでディスクに安全に保存する方法は?
- 14. サーバーにファイルを安全に保存する方法
- 15. 安全にLuaでXMLを生成する
- 16. 安全なRESTful API - ファイルのダウンロード方法
- 17. iframeソースを安全にする方法
- 18. Webサービススレッドを安全にする方法
- 19. キャッシュスレッドを安全にする方法
- 20. ログインセッションを安全にする方法
- 21. Sol2を使ってC++にLUAシーケンスを安全に渡す
- 22. 安全な方法でsvnファイルをエクスポートするには?
- 23. iPhoneアプリ無線ディストリビューション - .ipaファイルを安全にする方法?
- 24. Javaでファイルを安全に削除する方法
- 25. Lua:変数をゼロに設定する方法
- 26. 設定ファイルをPythonで安全にする方法を教えてください。
- 27. PHP設定ファイルはHTTP上で安全ですか?
- 28. 安全な方法
- 29. textField.textを安全にアンラップしてプロパティに安全に保存する方法
- 30. C#:安全でない構造体のメンバ配列を設定する方法
+1他の困難な方法で解決するのではなく、実際的な解決策です – cctan