
LUA では、任意のリンクからデータを取得する Loadstrings を使用して HTTP リクエストをロードできます。
これらの「ロードストリング」は、これらのロードストリング スクリプトを使用する「roblox ハッカー」の大規模なコミュニティのせいで、インターネットで検索するのがかなり面倒であることに気づきました。
だから、関連する情報を見つけるのは少し難しいのです
皆さんに質問したいのですが、lua ロードストリングで DataURL をサポートできますか? プラグインのないシンプルな lua 環境を実行しています。(基本的に、別のサイトからデータを取得する小さな「base64 ウェブページ」を使用して外部スクリプトをロードできるようにしたいのですが、オンライン サイトがダウンした場合に備えて常にバックアップ オフライン キーがあるため、データ URL になります)
答え1
loadstring を使用して外部ソースから Lua コードを実行することは確かに可能ですが、あまり良い方法ではありません。インターネットから任意のコードを実行することは一般的に安全ではありません。これらのファイルを提供するサーバーがハッキングされると、すべてのクライアントが危険にさらされます。2 つ目の問題は、クライアントが古いバージョンを実行している場合、サーバーからのコード コーディングが失敗する可能性があるため、更新して同期を維持するのは悪夢になることです。よりよい方法は、サーバーから純粋なデータを送信することです。サーバーにクライアント側について何も知らせたくないでしょう。loadstring をどうしても使用する必要がある場合は、少なくとも setfenv を使用してサンドボックス化されていることを確認してください。
function saferload(sz, env)
local f = pcall(loadstring, sz)
if not f then
return
end
env = env or {}
setfenv(f, env)
return pcall(f) or env
end
base64 で何かをエンコードする必要はありません。サーバーのヘッダーが正しいことを確認するだけです。PHP では次のようになります。
header("Content-Type: text/plain");
DataURLs に関する質問については、サーバーからバイナリ データも取得できることに注意してください (その場合、loadstring は必要ありません)。サーバーからファイルを取得したら、AppData ディレクトリに保存し、必要に応じて更新できます。