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

  • Elly Awesome

    Elly Awesome

    15 ŞUBAT 2010
  • Hollyscoop

    Hollyscoop

    30 Ocak 2007
  • Matt Davis

    Matt Davis

    4 ŞUBAT 2006