SORU
3 AĞUSTOS 2009, PAZARTESİ


Nasıl güvenli bir Lua sanal oluşturabilir miyim?

Lua "" başvurum içeri. kullanıcı betikleri güvenli uygulanması için ideal görünüyor, değil mi?

Ancak, lua gömme çoğu örnekleri tüm standart yükleme kütüphaneleri, dahil gibi görünüyor "ıo" ve "". paket

Tercümanım bu libs hariç, ama temel kütüphane fonksiyonları içerir bile "" ve "dosya sistemi". loadfile dofile

Nasıl "" fonksiyonu? ipairs gibi basit şeyler bile olmayan bir tercüman ile biten olmadan bu gibi/blok herhangi bir güvensiz işlevleri kaldırmak,

CEVAP
3 AĞUSTOS 2009, PAZARTESİ


setfenv) güvenilmeyen kod çalışan işlev ortamı ayarlayabilirsiniz(). İşte bir film

local env = {ipairs}
setfenv(user_script, env)
pcall(user_script)

user_script Bu işlev sadece kendi ortamında ne erişebilir. O zaman güvenilmeyen kod erişimi (beyaz) istediğiniz açıkça işlevleri ekleyebilirsiniz. Bu durumda kullanıcı betiği sadece ipairs ama başka bir şey (dofile, loadfile vb.) erişimi vardır.

Bir örnek ve lua korumalı alan hakkında daha fazla bilgi için Lua Sandboxes bkz.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • CNNMoney

    CNNMoney

    16 Kasım 2006
  • SignatureSeries

    SignatureSer

    24 Aralık 2006
  • Skrillex

    Skrillex

    6 NİSAN 2010