2017-06-06 4 views
3

luaモジュールを同僚と共有したい。共有モジュールの最新バージョンを入手するには、Webサーバーで保存してフェッチする必要があります。ルア文字列をルアコードとして実行する

私の質問は以下のとおりです。

は、それは、HTTPリクエストまたは文字列から直接LUAコードをロードすることは可能ですか?

module = [[ 
    local sharedModule = {} 
    function sharedModule.greet(name) print("hello " .. name) end 
    return sharedModule 
]] 
greeter = require (module) 
greeter.greet("john") 

は多分これを行うには正しいことではありません。

は、私はそのような何かを達成したいです。これ以上のアプローチはありますか?

+4

あなたは['load'](https://devdocs.io/lua~5.3/index#pdf-load)を探しています。しかし、私はモジュールを内部的にホストして、ユーザーにダウンロードしてインストールさせてもらうことを勧めます。 – hjpotter92

+0

@ hjpotter92迅速な対応をありがとうございます。そしてアドバイスをありがとう。私はluaモジュールにアクセスする前にセキュリティチェックを設定します –

答えて

2

a whole sectionにあります。プログラミングはLuaでになっています。あなたのニーズはloadstringで直接満たされます。

あなたが実際に実行しているコードを慎重に検証します。少なくとも、実行中のコードが特定の状態にある環境に依存する場合は、間違ったバージョンを実行すると、おそらくすべての種類の問題が発生する可能性があります。最適なチェックサムとコードの署名、何かをする前に署名の検証。あなたの環境が保護されていない場合、これは本質的に巨大なバックドアの開口部です。

ライブラリを使用して、実行中のコードを分離することもできます。 Lua環境そのもの。セキュリティで保護されているわけではないかもしれませんが、少なくとも受信したコードがアプリケーションのクラッシュを防止する必要があります。

関連する問題