私は、ユーザーが自分で作成したLuaスクリプトをサーバーを介して共有できるようにすることを考えています。ただし、Luaスクリプトによって引き起こされるクライアント側のエクスプロイトが心配です。私の理解では、Luaはこれを防ぐために構築されています。しかし、私はいくつかのLuaエクスプロイトを見てきました。サンドボックスを使って、別の方法を探す必要がありますか?
私のフレームワークはQtに基づいて構築されており、QtLuaの使用を考えていました。
スクリプトの実行をサンドボックス化し、クライアント側とサーバー側の両方でプリコンパイルされたバイトコードのロードと実行を禁止するようにしてください。サンドボックスでは、「ホワイトリスト」手法を使用して、ユーザースクリプトに(コンテキスト内で)精査された既知の安全な操作のみを提供するようにしてください。
別のプロセス(またはスレッド)でスクリプトを実行し、プラットフォームサービスを使用して、スクリプトが消費できるCPU時間とメモリの量を制限することもできます。そうしないと、スクリプトの実行に騙されたユーザーがrepeat until false
CPUコア全体を消費します。同様に、メモリに対する単純な攻撃があります。
個人の個人用マシンに対する単純なサービス拒否攻撃の可能性は、パスワードや銀行の詳細の盗難につながるエクスプロイトを可能にすることと同じではないため、これが懸念事項であるかどうかは、私見の認識の問題です。