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

  • apenney888

    apenney888

    27 EKİM 2010
  • John Lynn

    John Lynn

    8 Ocak 2010
  • NextKsa

    NextKsa

    7 EKİM 2009