LuaとJavascriptがオブジェクト機能モデルをサポートするかどうかについて、メーリングリストでいくつかの議論cap-talk
がありました。環境をを介して呼び出される関数に制限するためのサポートとsetfenv
、不変オブジェクトへの偽造不可能な参照の可能性があるため、OCMは実装されました。
これがどのように機能するかを見たことがありますか?私は、Luaで非常に便利で寛大なスクリプトをサポートしている既存のアプリケーションからエクスプロイトを削除することに興味があります。これにより、残念ながら、あらゆる種類のケースで完全なシェルアクセスが可能になります。いくつかのシェルアクセスが必要です。オブジェクト機能モデルは、物事を管理するための良い方法のようです。しかし、私は、このアプローチが、確実に厄介な慣行において実際に検証可能に安全であるという、私がどれほど説得力のある事例を作ることができるかについて心配しています。
いくつかのリンク:
- 古いSOの質問:安全なLuaサンドボックスを作成するにはどうすればよいですか?
- erights.orgの背景:オブジェクトから機能へ
- Lua wiki:SandBoxesとReadOnlyTables-動作中のショー
setfenv
。適切な状況下で読み取り専用にすることができるテーブルの背後にある基本的な考え方を示しています