[3.3] Prüfung auf Javascript

In diesem Forum gibt es Starthilfe zum neuen Extension-System von phpBB 3.1/3.2. Fragen zur Entwicklung von Extensions und zur Konvertierung von phpBB 3.0.x MODs sind ebenfalls willkommen.
Benutzeravatar
chris1278
Mitglied
Beiträge: 3526
Registriert: 12.11.2007 06:20
Wohnort: Euskirchen
Kontaktdaten:

Re: [3.3] Prüfung auf Javascript

Beitrag von chris1278 »

Also ich weis jetzt nicht genau was die Extension genau macht. Habe mich nicht eingelesen. Aber wenn es sich hierbei um ein Skript handelt was nur ausgeführt werden soll wenn es sich um Gäste oder Bots handelt so wäre das doch ne Überlegung das Skript in den Style Ordner all zu legen (dann spielt das keine Rolle welcher style letztendlich aktiv ist) und das Skript in der html Datei so zu schreiben:

Code: Alles auswählen

{% if not S_USER_LOGGED_IN and not S_IS_BOT %}
...hier der scriptcode...
{% endif %}
Damit würde der skript code nur ausgeführt werden wenn der Besucher eben nicht eingeloggt ist und es sich nicht um einen Bot handelt.

Andere Varianten währen z.B.

{% if not S_USER_LOGGED_IN or not S_IS_BOT %} <-- geprüft ob Besucher abgemeldet ist oder kein Bot ist. Heist wird ausgeführt wenn der Besucher ausgeloggt ist oder wenn es kein BOT ist.

{% if not S_USER_LOGGED_IN and S_IS_BOT %} <-- geprüft ob Besucher abgemeldet und ein Bot ist. Heist wird ausgeführt wenn der Besucher ausgeloggt ist und es sich um einen Bot handelt.

{% if not S_USER_LOGGED_IN or S_IS_BOT %} <-- geprüft ob Besucher ausgeloggt ist oder ein Bot ist. Heist wird ausgeführt wenn der Besucher ausgeloggt ist oder es sich um einen Bot handelt.

Man Bemerke den Unterschied ob man die Trennung mit and oder or macht. Bei Trennung and wird auf beide Anweisung geprüft bei der Trennung nach or halt ob eine der beiden Zutrifft.

So könntest du das Skript eben in jedem Style laden aber nur nach eben der vorher eingelegten Überprüfung.

Vielleicht hilft dir das ja.

Das hätte in jedem fall den Vorteil das es bei jedem Style gehen würde egal ob im ACP Benutzerstyle überschreiben auf ja oder nein steht.
69bruno
Mitglied
Beiträge: 444
Registriert: 05.06.2020 08:21

Re: [3.3] Prüfung auf Javascript

Beitrag von 69bruno »

Scanialady hat geschrieben: 25.07.2021 19:21 für den Anonymous ist ein fester Style eingestellt, der hat keine Möglichkeit zu wechseln.
Bist Du da 100 % sicher ? Bei mir hat anonymous den Style progast verpasst bekommen, der das Script lädt. Ich bekomme von Gästen aber Beiträge (oder besser Themen), die ich selbst, wenn ich mich abmelde nicht posten kann, weil das script es verhindert. Also ist mein erster Gedanke, dass der Style anscheinend irgendwie umgangen wird.
Forum: cruiser-lounge.de
PHPBB-Version: 3.3.11 / Debian-Linux 10 / PHP-Version: 8.1
Benutzeravatar
Mike-on-Tour
Supporter
Supporter
Beiträge: 1063
Registriert: 13.01.2020 21:09
Kontaktdaten:

Re: [3.3] Prüfung auf Javascript

Beitrag von Mike-on-Tour »

Ich habe das eben mal mit phpBB 3.3.4 ausprobiert und konnte auch als nicht eingeloggter Gast den Style mittels https://mein-forum/index.php?style=x ändern, wobei x die style_id aus der Datenbank-Tabelle sein muss. Wenn es diesen Eintrag nicht gibt, wird auch nichts geändert.
69bruno
Mitglied
Beiträge: 444
Registriert: 05.06.2020 08:21

Re: [3.3] Prüfung auf Javascript

Beitrag von 69bruno »

PS: Habt ihr beide im ACP -> Board-Einstellungen -> Benutzer-Style überschreiben: auf "JA" gestellt?
Damit sollte sich das Problem lösen. Zumindest kann ich das Style als Gast ändern, wenn es auf Nein steht. 
auch, wenn du das im ACP auf ja stehen hast ?
Forum: cruiser-lounge.de
PHPBB-Version: 3.3.11 / Debian-Linux 10 / PHP-Version: 8.1
Benutzeravatar
Scanialady
Supporter
Supporter
Beiträge: 1717
Registriert: 23.02.2009 16:29
Wohnort: Velbert (NRW)
Kontaktdaten:

Re: [3.3] Prüfung auf Javascript

Beitrag von Scanialady »

69bruno hat geschrieben: 25.07.2021 21:22
Scanialady hat geschrieben: 25.07.2021 19:21 für den Anonymous ist ein fester Style eingestellt, der hat keine Möglichkeit zu wechseln.
Bist Du da 100 % sicher ? Bei mir hat anonymous den Style progast verpasst bekommen, der das Script lädt. Ich bekomme von Gästen aber Beiträge (oder besser Themen), die ich selbst, wenn ich mich abmelde nicht posten kann, weil das script es verhindert. Also ist mein erster Gedanke, dass der Style anscheinend irgendwie umgangen wird.
Bitte nicht missverstehen: er kann den WECHSLER nicht bedienen. Aber was sollte den Anonymous daran hindern, auf dem oben mehrfach beschriebenen Weg über ?style=1 prosilver aufzurufen? Für Angriffe via irgendwelcher autoposts wohl eher eine einfache Möglichkeit.
Die Bosheit trinkt die Hälfte ihres eigenen Giftes (Lucius Annaeus Seneca)
-
Wenn von etwas kein Backup existiert, dann ist es nicht wichtig.
Benutzeravatar
BNa
Valued Contributor
Beiträge: 3169
Registriert: 12.04.2010 23:51
Kontaktdaten:

Re: [3.3] Prüfung auf Javascript

Beitrag von BNa »

Willkommen in der Grundschule - Die habt ihr bestanden :lol: :geek: :grin:
Benutzeravatar
chris1278
Mitglied
Beiträge: 3526
Registriert: 12.11.2007 06:20
Wohnort: Euskirchen
Kontaktdaten:

Re: [3.3] Prüfung auf Javascript

Beitrag von chris1278 »

Hallo also ich klinke mich mal hier mit der frage ein weil dies indirekt mit dieser Sache zu tun hat.


Ich habe von Bruno das bekommen was er gebastelt hat, und ich denke man kann das auch Komplet in eine ext. auslagern. So wie es momentan ist ist das eine halbe ext und ein halber style die zusammen diese Funktion machen die Bruno haben will.

Das Problem ist man mus dafür die posting editor ausblenden und durch eine Modifizierte für den Gast eingeschränkte Version ersetzen. Was ansich kein Problem wäre.

Die Datei die im Style direkt modifiziert wurde wäre diese hier:

posting_layout.html

Dieses wird über die posting_body.html gesteuert je nach dem ob Antwort auf Beitrag oder PN.

Wo wird aber in der viewtopic_body.html auf diese posting_body.html zugegriffen. weil ich kann weder in der posting_body noch in der posting_layout über events ausblenden und neu einblenden lassen. Das heist ich mus weiter vorher dieses steuern.


Falls jemand ne Idee hat.
Benutzeravatar
LukeWCS
Supporter
Supporter
Beiträge: 2091
Registriert: 15.12.2014 10:19
Kontaktdaten:

Re: [3.3] Prüfung auf Javascript

Beitrag von LukeWCS »

chris1278 hat geschrieben: 28.07.2021 17:05 Das Problem ist man mus dafür die posting editor ausblenden und durch eine Modifizierte für den Gast eingeschränkte Version ersetzen. Was ansich kein Problem wäre.

...

Wo wird aber in der viewtopic_body.html auf diese posting_body.html zugegriffen. weil ich kann weder in der posting_body noch in der posting_layout über events ausblenden und neu einblenden lassen. Das heist ich mus weiter vorher dieses steuern.
Punkt1: Diese Datei hat nur 2 Events und keines davon sitzt an der Position, die für eine Ausblenden/Hinzufügen Aktion benötigt würde. Schon alleine durch diese Tatsache, scheidet dein Ansatz aus.

Punkt2: Das nächste Problem ist, die form hat eine eindeutige ID. Du kannst also keine eigene Variante dieses Containers mit der gleichen ID einbinden, sondern müsstest auch eine eigene ID vergeben. Dazu müsste aber erst geklärt werden, ob dann noch alles funktionieren würde, wenn die ID anders lautet. Aber alleine durch Punkt1 wird Punkt2 ohnehin irrelevant.

Eine Variante wäre, per Ext das Core Template zu "überschreiben". Laut Ext Doku gibt es da wohl einen Weg, die Doku schweigt sich aber darüber aus, wie genau das gemacht werden muss und führt stattdessen eine explizite Warnung auf:
If a standard phpBB template filename is used for an extension template, then it will override the template file from phpBB. Therefore it is important to be mindful of this when naming template files. Overriding template files is not advisable for publicly released extensions as it could conflict with other extensions.
Das wäre also nur ein gangbarer Weg, solange die Ext Foren-Spezifisch genutzt, aber nicht veröffentlicht wird.

Eine andere Variante wäre jQuery (oder JS), mit dem man quasi zur Laufzeit eine Änderung im DOM vornimmt. Da hier ja JS auf jeden Fall aktiviert sein muss weil sonst gar nichts geht, wäre das zumindest theoretisch eine Möglichkeit. Aber:

@Bruno

Nur als Info: Ich habe mir das mal live bei dir angeschaut. Mit einem Browser der auf der Chrome Engine basiert, ist es ohne weitere Browser-Plugins kein Problem, deine "Schutzmassnahme" komplett zu umgehen. Bei anderen Browsern sind eventuell Plugins notwendig. Ich habe ein paar Minuten benötigt um mir anzuschauen was du bei phpBB geändert hast um darauf basierend eine "Gegenmassnahme" zu entwickeln. Es muss nur eine winzige Änderung in einer einzigen Zeile deines JS Codes geändert werden, dann kann das Ganze komplett umgangen werden.

Getestet habe ich das nur mit der Vorschau. Aber soweit ich das sehe, dürfte das dann auch mit "Absenden" problemlos gehen, sofern du nicht Serverseitig weitere Massnahmen ergriffen hast. Wenn du willst, können wir das ja testen.

Ein "Schutz" der darauf basiert, das JS ausgeführt werden muss, darf von Anfang an als "geknackt" betrachtet werden. JS wird Clientseitig ausgeführt. Und was ich da mit deinem JS mache, darüber hast du keinerlei Kontrolle. :wink:

edit: Okay, ich habe gerade eben gesehen, das ihr die Diskussion über die Problematik ins WWH Forum verlagert habt. Dann klären wir das dort, die technischen Details sind ohnehin nicht "Öffentlichkeitstauglich". :wink:
Möge das Backup mit dir sein. Immer.

Erweiterungen - Infos zur artgerechten Haltung
phpBB Ext Check - Analysesystem für phpBB Erweiterungen (Entwickler Werkzeug)
Antworten

Zurück zu „Extension Bastelstube“