Wir prüfen die Möglichkeit, benutzerdefinierten Code in eine PHP-Anwendung einzubetten, und erkunden sichere/Sandbox-Methoden dafür (z. B. wenn Sie Apex in Salesforce verwendet haben oder mit ExpressionLanguage vertraut sind in Symfony, so etwas).
Wir suchen nach einer sicheren Möglichkeit, benutzerdefinierte, vom Benutzer bereitgestellte zusätzliche benutzerdefinierte Logik auszuführen, aber stellen Sie sicher, dass es so ist eingeschränkt, da sie z.B. nicht liefern können. Code, der gefährliche Dateisystembefehle ausführt.
Was meine ich mit „sandboxed“?
Ich möchte nicht vertrauenswürdige, vom Benutzer bereitgestellte Dateien zulassen auszuführender Code.
z.B. Wir können nicht einfach jemandem erlauben, beliebigen PHP-Code auszuführen, da er dann Dateisystemzugriff und Funktionen wie exec(), file(), fopen() usw. usw. hätte.
Das Schöne an Twig ist, dass der Zugriff, der den Benutzern gewährt wird, extrem ist. Es gibt keine Funktionen, mit denen Sie z.B. Greifen Sie auf das Dateisystem zu oder tätigen Sie HTTP-Aufrufe.
Was wir untersuchen
Eine Sache, die wir untersuchen, ist das Zulassen von benutzerdefiniertem Twig auszuführen, aber der einzige Nachteil von Twig ist, dass es eigentlich als Vorlagensprache konzipiert ist, sodass die Logik wie diese aufgrund der ganzen zusätzlichen Klammern etwas klobig ist:
{% if foo.bar == 'test' %}
{% for line in lines %}
{% if line.rate > 10 %}
... more code here ...
{% endif %}
{% endfor %}
{% endif %}
Es wäre viel sauberer/einfacher, wenn wir einfach schreiben könnten:
if foo.bar == 'test'
{
for line in lines {
if line.rate > 10
{
... more code here ...
}
}
}
Ist es möglich / hat jemand gesehen, dass Twig so erweitert wurde, dass es mehrere Codezeilen unterstützt und nicht alle {% und %} benötigt?
Oder falls das nicht gelingt ... hat jemand eine andere Möglichkeit gesehen, nicht vertrauenswürdige, vom Benutzer bereitgestellte Logik sicher in eine PHP-App einzubetten? Wir haben auch die PHP Lua-Erweiterung als mögliche Option in Betracht gezogen, aber ich bin mir nicht sicher, wie gepflegt sie ist...
Kann Twig PHP erweitert werden, um mehrzeilige Codeblöcke zu unterstützen? (Oder eine bessere Möglichkeit, benutzerdefin ⇐ Php
-
- Similar Topics
- Replies
- Views
- Last post