Hacking – Sicherheitsberechtigungen für Python-Module
伊谢尔伦
伊谢尔伦 2017-06-12 09:25:57
0
1
615

Jetzt müssen wir ein Plug-in-System entwickeln. Jeder im Plug-in-System kann PY-Dateien schreiben und laden. Sie müssen jedoch die Bibliothek des Hauptprogramms vorstellen, z. B.

# test.py from lib.function import * ...

Wie kann verhindert werden, dass Benutzer auf andere Methoden oder Variablen in lib zugreifen?

alleWenn ich Namen hinzufüge, muss mein Hauptprogramm alle * aufrufen, ist das in Ordnung?

伊谢尔伦
伊谢尔伦

小伙看你根骨奇佳,潜力无限,来学PHP伐。

Antworte allen (1)
学霸

python并没有真正的私有变量或者方法, 所以基本上是无法阻止别人访问另一个模块的方法或者变量, 但是如果用户是通过from lib.function import *, 那么我们可以通过__all__属性去设置*能被import指定的变量或方法, 例如:

cat abc.py __all__ = ['bar'] waz = 5 bar = 10 def baz(): return 'baz' cat b2.py from abc import * print(dir()) # 输出: ['__builtins__', '__doc__', '__file__', '__name__', '__package__', 'bar']

可以看到在b2.py的输出, 并没有barbaz, 所以我们可以通过这种方式, 来做一个简单的控制, 当然下划线开头的私有变量也限制了, 但这种限制对 import abc这种引入方式无效

    Neueste Downloads
    Mehr>
    Web-Effekte
    Quellcode der Website
    Website-Materialien
    Frontend-Vorlage
    Über uns Haftungsausschluss Sitemap
    Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!