Linuxのアクセス許可では、Luaが自分のディレクトリの外に出たり他の人に移動することを阻止できません。LuaがCS2Dゲームでファイルを削除できるようにする
はまた、前にこれらの値を宣言する場合:
os.execute = nil
io.popen = nil
それは実際に問題を解決しますが、私のクライアントは、他の保存されたスクリプトを使用することができないように、多くの機能を無効にします。
Linuxのアクセス許可では、Luaが自分のディレクトリの外に出たり他の人に移動することを阻止できません。LuaがCS2Dゲームでファイルを削除できるようにする
はまた、前にこれらの値を宣言する場合:
os.execute = nil
io.popen = nil
それは実際に問題を解決しますが、私のクライアントは、他の保存されたスクリプトを使用することができないように、多くの機能を無効にします。
あなただけの必要なディレクトリのアクセス権と、新しいLinuxのユーザーを作成し、そのよう実行することができます。そうでない場合があり
本当に何の解決策ではありません。あなたが好きなだけサンドボックスすることができますが、それらの機能が必要な場合はあなたは不運です。
はい、LUA afaikでディレクトリ間をジャンプできます。 – Marcell
あなたはいつもあなたが取られた行動のより多くの制御を持っているように、ゼロに設定する前に、元os.execute周りにあなたのラッパー関数を作成することができます。例えば:
もちろんlocal osExecute = os.execute
os.execute = nil
os.createDir = function(dir)
osExecute("mkdir "..dir)
end
os.saveScript(script)
osExecute("command to save script goes here")
end
、この例では、攻撃を受けやすい、あなたが例えば、必ずそれは本当にフォルダ名であることを確認し、ないfolder;rm -rf /
し、パラメータを検証する必要があります。
同じことがpopenのために行く、あなたは常に実行するコマンドのあなたのセットを作成することができます。
あなたは、その後、もちろん、余分なセキュリティのために、制限された権限を持つユーザーを作成することができます。
本当にこのためにLinux権限を使用することはできませんか?スクリプトを別のユーザーとして、権限を減らして実行させるとどうなりますか? (私は、この行に沿ってスクリプトが "www"フォルダの外に出ないようにするために、この行に何かしていることを知っています) – hugomg