Thread Rostis Framework (81 answers)
Opened by rosti at 2014-05-09 10:51

rosti
 2014-11-16 10:17
#178378 #178378
User since
2011-03-19
3180 Artikel
BenutzerIn
[Homepage]
user image
2014-11-14T08:47:42 GwenDragon
Wo ist der Vorteil deiner Lösung als Javascript, welches die Inhalte des DOM der Seite ändert, im Vergleich zu einer Einbindung als IFrame?


Vorab: Mein Forum-Sub-Project ist ziemlich komplex. Als ich damit anfing, zunächst ein Forum nur JS-basierend zu schreiben, war mir selbst noch gar nicht klar, welche Features sich genau damit zukünftig realisieren lassen. Versuch macht kluch und im Nachhinein ist jeder schlauer :)

Wesentliches Merkmal für den Forum-Proxy ist eine daran gekoppelte Policy, die auf dem Forum-Host verwaltet wird.

Policy: Neben den Laden der JavaScript-Ressourcen prüft der Proxy eine Policy, die auf rolfrost.de verwaltet wird. In dieser Policy ist ganz genau festgelegt, zu welchem Mandanten welches Fourm gehört und auf welcher Domäne das Forum des Mandanten betrieben wird.

Anhand dieser Policy ist es beispielsweise nicht möglich, dass ein Mandant ein Forum eines anderen Mandanten auf seiner Domäne betreiben kann. Eine Manipulation der Policy ist ausgeschlossen, weil die Prüfung auf dem Policy-Server erfolgt und nicht im Proxy-Script. Das Ergebnis der Policy-Prüfung wird zusammen mit JavaScript ge-cached.

Des Weiteren: Wenn die Policy scharf geschaltet ist (momentan ist sie das nicht), lässt sich das Origin-Forum nicht einmal mehr auf dem Host aufrufen.

Beispiel einer Policy:

Code: (dl )
1
2
3
4
5
 ------------------------------------------------------------
|Mandant | Origin | Domain v. Mandant |
------------------------------------------------------------
|ulli | http://host/ulliforum.html | ulli.de |
-------------------------------------------------------------


Beim Laden des Forums auf ulli.de wird die Policy zusammen mit JS gecached, fürs Ausliefern der Policy zusammen mit JS ist der Proxy zuständig.
Beim Request auf das ulli.de/forum greift die Policy als Vermittler zwischen Mandant <=> Origin.

Der andere Teil der Policy, nämlich die Vermittlung Origin <=> Domain(Mandant) greift im Forum-Server selbst:
Hier wird anhand REMOTE_ADDR || HTTP_X_FORWARDED_FOR, was im DNS den Namen der Mandanten-Domäne ergibt, geprüft, ob die Inhalte ausgeliefert werden dürfen oder nicht.

Das alles ist nun in der Beta-Phase, mehr dazu auf meinem Board. Freilich gibts noch Einiges zu tun, z.B. ist die Klassenhierarchie für CSS überarbeitungsbedürftig. Schließlich will ein Mandant das individuell gestalten können.

Und: Alles ist Perl :)

PS, Proxy: http://rolfrost.de/forum_proxy.txt

Edit: Letzte Idee wieder verworfen ;)
Last edited: 2014-11-16 12:13:07 +0100 (CET)

View full thread Rostis Framework