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

  • curioustravelers

    curioustrave

    12 AĞUSTOS 2006
  • FattySpins's channel

    FattySpins's

    17 Mayıs 2009
  • Xcode programming tutorials

    Xcode progra

    17 EYLÜL 2006