registrieren registriertes Mitglied


Anzeige

Anzeige

Kennt sich jemand mit "Twig" aus?

Stell hier Deine Frage zu: HTML, CSS, PHP, MySQL, htaccess, robots.txt, Javascript usw
supervisior
PostRank 9
PostRank 9
Beiträge: 2718
Registriert: 26.06.2006, 09:11

Beitrag supervisior » 17.07.2020, 12:42 Kennt sich jemand mit "Twig" aus?

Verzweifelt wie ich grad bin, versuch' ich hier mal mein Glück, weil mein Bedarf scheinbar so exotisch ist, dass ich nicht finde, wonach ich suche.

Weiß jemand, wie man unter Nutzung von Twig $_GET im Template abfragen kann?

Anzeige von:

SEO Consulting bei ABAKUS Internet Marketing
Erfahrung seit 2002
  • persönliche Betreuung
  • individuelle Beratung
  • kompetente Umsetzung

Jetzt anfragen: 0511 / 300325-0.


Hanzo2012
Community-Manager
Community-Manager
Beiträge: 2129
Registriert: 26.09.2011, 23:31

Beitrag Hanzo2012 » 17.07.2020, 12:46 Kennt sich jemand mit "Twig" aus?

{{ app.request.get('parameter_name') }}

supervisior
PostRank 9
PostRank 9
Beiträge: 2718
Registriert: 26.06.2006, 09:11

Beitrag supervisior » 17.07.2020, 12:54 Kennt sich jemand mit "Twig" aus?

So weit war ich schon, aber da tut sich nichts. Ich habs auch schon damit versucht, weiß aber noch nicht mal, ob die Syntax überhaupt stimmt. Bis gestern wusste ich von Twig grad mal, dass Twig eine Template Engine ist.

Code: Alles auswählen

{% if app.request.query.get('esi') %} 
true
{% endif %}

Tomasso
PostRank 8
PostRank 8
Beiträge: 921
Registriert: 17.11.2006, 17:31
Wohnort: Augsburg

Beitrag Tomasso » 17.07.2020, 17:49 Kennt sich jemand mit "Twig" aus?

Syntax ist eigentlich korrekt. Dann kann es eigentlich nur am Parameter 'esi' liegen.

url?esi=irgendwas

supervisior
PostRank 9
PostRank 9
Beiträge: 2718
Registriert: 26.06.2006, 09:11

Beitrag supervisior » 17.07.2020, 18:06 Kennt sich jemand mit "Twig" aus?

Inzwischen weiß ich warum es nicht funktioniert. Es geht dabei um phpBB und das verfolgt eine sehr restriktive Security Policy, sodass app.request. im Template gar nicht verfügbar ist. Das ließe sich zwar aushebeln/überschreiben, aber dann hab ich die A-Karte. Also lass ich es.

staticweb
PostRank 9
PostRank 9
Beiträge: 2272
Registriert: 04.05.2016, 14:34

Beitrag staticweb » 17.07.2020, 19:24 Kennt sich jemand mit "Twig" aus?

> Inzwischen weiß ich warum es nicht funktioniert.

Die Debugging Ausgabe zu posten wäre sinnvoll gewesen.

> Es geht dabei um phpBB ...

Auch hier fehlte der twig context.

> ... und das verfolgt eine sehr restriktive Security Policy, sodass app.request. im Template gar nicht verfügbar ist.Das ließe sich zwar aushebeln/überschreiben, aber dann hab ich die A-Karte. Also lass ich es.

Wer sagt das? Welchen Grund soll es dafür geben?

supervisior
PostRank 9
PostRank 9
Beiträge: 2718
Registriert: 26.06.2006, 09:11

Beitrag supervisior » 17.07.2020, 19:38 Kennt sich jemand mit "Twig" aus?

staticweb hat geschrieben:
17.07.2020, 19:24
Wer sagt das? Welchen Grund soll es dafür geben?
Das sagt nicht irgendwer, sondern lässt sich kommentiert im Quellcode finden und musste ich mir dann auch formal von den Machern von phpBB sagen lassen. Stark vereinfacht bedeutet das, dass alles, und nicht nur im Template, sondern in der gesamten Installation, nicht schon verfügbar ist, ausgeschlossen wurde. Und da das Ergebnis von dem, was ich da mache, nicht nur für meinen persönlichen Gebrauch gedacht ist, sondern für die breite Masse, tue ich mir keinen Gefallen damit das gewünschte Sicherheitslevel auszuhebeln.

staticweb
PostRank 9
PostRank 9
Beiträge: 2272
Registriert: 04.05.2016, 14:34

Beitrag staticweb » 17.07.2020, 20:51 Kennt sich jemand mit "Twig" aus?

> Das sagt nicht irgendwer, sondern lässt sich kommentiert im Quellcode finden und musste ich mir dann auch formal von den Machern von phpBB sagen lassen.

Zeige mir mal die Quelle.

> Stark vereinfacht bedeutet das, dass alles, und nicht nur im Template, sondern in der gesamten Installation, nicht schon verfügbar ist, ausgeschlossen wurde.

Es geht wahrscheinlich darum keine Super Globals zu verwenden, sondern die requests Klasse \phpbb\request\request().
Dann musst du halt den Wert darüber einer Variable zuweisen.

supervisior
PostRank 9
PostRank 9
Beiträge: 2718
Registriert: 26.06.2006, 09:11

Beitrag supervisior » 17.07.2020, 21:42 Kennt sich jemand mit "Twig" aus?

Wäre es nur eine Sache, die sich auf PHP Code beschränken würde und ich $_GET nur darüber abfragen müsste, hättest Du recht, wobei es sogar noch einfacher ginge, aber ich muss auf $_GET übers Template zugreifen können und das geht nicht nicht, zumindest nicht in phpBB.

supervisior
PostRank 9
PostRank 9
Beiträge: 2718
Registriert: 26.06.2006, 09:11

Beitrag supervisior » 19.07.2020, 09:45 Kennt sich jemand mit "Twig" aus?

So, Lösung gefunden. Damit dieser Thread kein offenes Ende bekommt, hier die Lösung dazu, wenngleich ich mich ein weiteres Mal über diese für mich pseudohaft wirkende Sicherheitsphilosophie von phpBB wundere.

In den Backend Einstellungen unter Sicherheit gibt es eine Einstellung, die es optional erlaubt PHP Code im Template auszuführen. Ist diese Einstellung aktiviert, lässt sich auf $_GET wie gewünscht zugreifen und zwar ohne Filter oder sonstige Umgehung. Das gibt es zwar auch unter Smarty, was aber unter Smarty gar nicht notwendig ist, weil es für den ganzen Super Globals Rotz reservierte, aber abgesicherte Smarty Variablen gibt.

Paradox und gleichermaßen inkonsequent ist diese Strategie aber trotzdem. Einerseits in PHP alles absichern, aber im Template ist dann fast wieder alles möglich.

nerd
PostRank 10
PostRank 10
Beiträge: 4290
Registriert: 15.02.2005, 04:02

Beitrag nerd » 19.07.2020, 23:45 Kennt sich jemand mit "Twig" aus?

supervisior hat geschrieben:
17.07.2020, 18:06
Inzwischen weiß ich warum es nicht funktioniert. Es geht dabei um phpBB und das verfolgt eine sehr restriktive Security Policy, sodass app.request. im Template gar nicht verfügbar ist. Das ließe sich zwar aushebeln/überschreiben, aber dann hab ich die A-Karte. Also lass ich es.
Js logisch. Prinzipiell geht der request ja erstmal in deinen controller, da wird die eingabe validiert und ggf. in deine eigene variable aus GET/POST herrauskopiert, und deine validierten(!) variablen werden dann an das template weitergegeben - oder du wirfst eine fehlermeldung wenn die eingabe falsch ist.
Aus sicherheitsperspektive heraus sind erstmal alle eingaben ungueltig, bis sie validiert sind. Wer in seinem code direkt auf $_GET/$_POST variablen zugreift hat die kontrolle ueber sein leben verloren.

Erst letzte woche wieder gesehen bei einem neuen 30.000 Euro shop (selbst programmiert von einer agentur); die nervigen fehlermeldungen auf jeder seite wurden dann ueber error_reporting() abgeschalten ...

staticweb
PostRank 9
PostRank 9
Beiträge: 2272
Registriert: 04.05.2016, 14:34

Beitrag staticweb » 20.07.2020, 07:21 Kennt sich jemand mit "Twig" aus?

> Aus sicherheitsperspektive heraus sind erstmal alle eingaben ungueltig, bis sie validiert sind. Wer in seinem code direkt auf $_GET/$_POST variablen zugreift hat die kontrolle ueber sein leben verloren.

Genau so ist es.

supervisior
PostRank 9
PostRank 9
Beiträge: 2718
Registriert: 26.06.2006, 09:11

Beitrag supervisior » 20.07.2020, 07:52 Kennt sich jemand mit "Twig" aus?

Hö, ihr 2 Schlaumischlümpfe, habt Ihr was auf den Augen oder wichtelt Ihr einfach nur herum?

Wenn ich schreibe, dass man im Template machen kann, was in PHP abgeriegelt ist, ergibt sich daraus kein unmittelbarer Rückschluss, dass diese vermeintliche Lücke praktisch genutzt wird, um zu bekommen, was in PHP nur mit größerem Aufwand möglich ist. Und logisch ist hier gleich überhaupt nichts. Ihr kennt weder den Code, noch den Zweck, was am Ende herauskommen soll und noch weniger, wie das Ganze umgesetzt wurde. Also Bälle flach halten und ggf. nachfragen.

staticweb
PostRank 9
PostRank 9
Beiträge: 2272
Registriert: 04.05.2016, 14:34

Beitrag staticweb » 20.07.2020, 11:09 Kennt sich jemand mit "Twig" aus?

>> Weiß jemand, wie man unter Nutzung von Twig $_GET im Template abfragen kann?

> Also Bälle flach halten und ggf. nachfragen.

Nein, du solltest deinen Beitrag besser so formulieren, dass die anderen User auch wissen was du eigentlich willst. Du willst eine Lösung, für die andere auch noch die Details anfragen müssen. So sicher nicht.

supervisior
PostRank 9
PostRank 9
Beiträge: 2718
Registriert: 26.06.2006, 09:11

Beitrag supervisior » 20.07.2020, 11:12 Kennt sich jemand mit "Twig" aus?

staticweb hat geschrieben:
20.07.2020, 11:09
Nein, du solltest deinen Beitrag besser so formulieren, dass die anderen User auch wissen was du eigentlich willst. Du willst eine Lösung, für die andere auch noch die Details anfragen müssen. So sicher nicht.
Was hat es Dich zu interessieren, woran ich im Detail gerade arbeite? $_GET ist nun mal ein unmissverständliche Bezeichnung. Warum also etwas umschreiben, was eher dazu führt, dass noch weniger verstanden wird, was benötigt wird.

Antworten