Path: csiph.com!aioe.org!.POSTED!not-for-mail From: "AK" Newsgroups: pl.comp.lang.python Subject: =?UTF-8?Q?Re:_Python_w_pythonie_ale_nie_w_?= =?UTF-8?Q?oczywisty_spos=C3=B3b?= Date: Sat, 17 Feb 2018 14:07:44 +0100 Organization: Aioe.org NNTP Server Lines: 39 Message-ID: References: <5a881d8c$0$565$65785112@news.neostrada.pl> NNTP-Posting-Host: jHM0fgmX8PLRSmVRRAzYag.user.gioia.aioe.org Mime-Version: 1.0 Content-Type: text/plain; format=flowed; charset="UTF-8"; reply-type=original Content-Transfer-Encoding: 8bit X-Complaints-To: abuse@aioe.org X-Antivirus-Status: Clean X-Priority: 3 X-MimeOLE: Produced By Microsoft MimeOLE V6.0.6002.19694 X-Notice: Filtered by postfilter v. 0.8.3 X-Antivirus: Avast (VPS 180217-2, 2018-02-17), Outbound message X-MSMail-Priority: Normal X-Newsreader: Microsoft Windows Mail 6.0.6002.18197 Xref: csiph.com pl.comp.lang.python:92 Użytkownik "m" napisał: > To, bym zrobił tak że importowałbym plik .py jako moduł i wywoływałbym > jakąś tam funkcję z tego modułu przekazując mu odpowiednie obiekty. > > Wadą jest absolutny brak bezpieczeństwa, tj skrypt napisany przez usera > ma absolutnie całkowity dostęp do bebechów twojej aplikacji i może > zrobić coś wbrew twoim intencjom. Mozna ta funkcje (czy caly skrypt poprzez import) wywolac poprzez eval czy exec podajac mu scope eval(expression[, globals=None[, locals=None]) exec(object[, globals=None[, locals=None]]) i wtedy bezpieczenstwo pelne. Mozna tez uzyc ktoregosc ze sprawdzonym pakietow plugino-owych (a jest ich od groma - nie moge polecic najlepszegop bo.. zwyczajnie nie mam w nich duzego doswiadczenia. Po prostu eval/exec ze scopem zawsze mi poki co wystarczal). Np. https://pypi.python.org/pypi/Yapsy - mysle ze ten az zanadto starczy http://pluginbase.pocoo.org/ https://pypi.python.org/pypi/extensions Lub samego modzic np tak/na podstawie tego (ale po co?:): http://blog.mathieu-leplatre.info/a-very-simple-and-stupid-plugin-system-in-python.html http://www.arl.army.mil/arlreports/2014/ARL-CR-0743.pdf https://pypi.python.org/pypi/simple_plugins https://github.com/thodnev/pluginlib/blob/master/pluginlib.py >> b) chciałbym miec całkowitą kontrolę nad skryptem, mogę go w dowolnym >> momencie wylączyć. Idealem było by gdybym mógł go równiez zatrzymac i >> wznowić. > > To możnaby było zrobić albo w postaci osobnego procesu, który byś po > prostu ubił. Wystarczy watek, czy nawet zwykla korutyna. AK