forum_address in mlf2_settings (German / Deutsch)

by RaHa, Friday, April 14, 2017, 11:57 (2540 days ago)
edited by Auge, Tuesday, April 18, 2017, 08:53

Ich habe heute Version 2.4.2 neu unter https://example.net installiet. In die Datenbank wird aber bei mlf2_settings forum_adress http://example.net eingetragen. Dadurch werden einige Dateien nicht geladen.

[Warning] [blocked] The page at https://example.net/forum2/index.php was not allowed to run insecure content from http://example.net/forum2/themes/myforum/style.min.css. (index.php, line 8)

[Warning] [blocked] The page at https://example.net/forum2/index.php was not allowed to run insecure content from http://example.net/forum2/index.php?mode=js_defaults&t=1492168472&user_type=2.

[Warning] [blocked] The page at https://example.net/forum2/index.php was not allowed to run insecure content from http://example.net/forum2/js/main.min.js.

[Warning] [blocked] The page at https://example.net/forum2/index.php was not allowed to display insecure content from http://example.net/forum2/themes/myforum/images/favicon.ico.

Man muss in der Datenbank manuell die Änderung vornehmen (kein Problem, da das Forum immer unter https:// läuft. Hat mich nur was Zeit gekostet bis ich wusste wo ich ansetzen musste ;-) )

Avatar

forum_address in mlf2_settings

by Auge ⌂, Tuesday, April 18, 2017, 09:16 (2536 days ago) @ RaHa

Hallo

Ich habe heute Version 2.4.2 neu unter https://example.net installiet. In die Datenbank wird aber bei mlf2_settings forum_adress http://example.net eingetragen.

Das passiert genau und nur dann, wenn man bei der Installation die Protokollangabe vor der Adresse nicht anpasst. Das Eingabefeld für die Forumsadresse gibt es im Installationsskript ja nicht aus Daffke. ;-)

Wenn man die Umstellung auf HTTPS im laufenden Betrieb, also nach der Installation, vornimmt, muss man natürlich selbst darauf kommen, die Angabe in den Einstellungen anzupassen.

Dadurch werden einige Dateien nicht geladen.

Ja, das ist klar. Die (meisten?) Browser verhindern (ohne weitere Handstände) das Nachladen von Ressourcen, die nicht per HTTPS ausgeliefert werden sollen, wenn die Seite selbst über HTTPS angefordert und ausgeliefert wurde. Man kann das Nachladen z.B. im Firefox zwar erlauben, das gilt aber nur für die gegenwärtige Browsersitzung. Das ist alles andere als bequem und ist für die meisten Nutzer wohl ungeeignet. Als Nutzer, zumindest als solcher ohne tiefere Kenntnisse, erwartet man einfach, dass es funktioniert.

Tschö, Auge

PS: Für Beispiel-URLs gibt es extra die Beispieldomains example.com, example.org und example.net, damit man nicht ungewollt auf existierende Domains verlinkt. Ich habe daher deine URLs geändert. Bitte benutze künftig eine der oben genannten Domains für Beispiele mit unbestimmten URLs.

--
Trenne niemals Müll, denn er hat nur eine Silbe!

forum_address in mlf2_settings

by RaHa, Tuesday, April 18, 2017, 09:47 (2536 days ago) @ Auge

Danke!
Ja, wenn Daffke ist.

Avatar

forum_address in mlf2_settings

by Auge ⌂, Tuesday, April 18, 2017, 10:25 (2536 days ago) @ RaHa

Hallo

Das ist zwar kein spezifisches Problem der Forensoftware, aber ein stehenbleibender Hinweis an geeigneter Stelle wäre schon nicht schlecht. Das Forum ist meiner Meinung nach dafür ungeeignet, weil der entsprechende Thread irgendwann verschwände oder sich auf diese Weise angepinnte Threads ansammelten (Warum sollten andere Grundsatzfragen auch weniger prominent behandelt werden?). Bleibt die FAQ des Repos. Da muss ich aber eh noch bei.

Viel mehr würde mich aber deine Antwort wegen des Seitenabdeckungsproblems interessieren. Ist es nun gelöst?

Tschö, Auge

--
Trenne niemals Müll, denn er hat nur eine Silbe!

forum_address in mlf2_settings

by RaHa, Tuesday, April 18, 2017, 13:18 (2536 days ago) @ Auge

Das ist zwar kein spezifisches Problem der Forensoftware ...

Hallo Auge,

ich habe jetzt noch 2 mal neu installiert und bin noch mal drauf reingefallen, weil die Installation diesen Wert ja automatisch vorgibt. Es sollte dann schon dort https://... stehen wenn unter HTTPS installiert.

Danke!
RaHa

Avatar

forum_address in mlf2_settings

by Auge ⌂, Tuesday, April 18, 2017, 13:40 (2536 days ago) @ RaHa

Hallo

Das ist zwar kein spezifisches Problem der Forensoftware ...


ich habe jetzt noch 2 mal neu installiert und bin noch mal drauf reingefallen,

Von deiner Seite aus gesehen ist es wohl doch ein Problem der Forensoftware. Der Vorgabewert im Installationsskript enthält das Protokoll als hartkodierte Zeichenkette. Wärst du so lieb, einen weiteren Installationsversuch mit einer angepassten Zeile durchzuführen?

[edit]Vergiss das Folgende, das bedarf weiterer Vorarbeiten![/edit]

Wenn ja, ersetze in der schon oben verlinkten Zeile 24 der install.php die Zeichenkette 'http//' vor .$_SERVER['HTTP_HOST'] durch $_SERVER["SERVER_PROTOCOL"], rufe das Installationsskript auf und prüfe die URL auf Vollständigkeit und die korrekte Angabe des Protokolls.

weil die Installation diesen Wert ja automatisch vorgibt. Es sollte dann schon dort https://... stehen wenn unter HTTPS installiert.

Wenn ich mit auch deiner Hilfe herausfinde, ob meine Idee nicht nur auf den mir zugänglichen Servern funktioniert, kann das eingebaut werden.

Tschö, Auge

--
Trenne niemals Müll, denn er hat nur eine Silbe!

forum_address in mlf2_settings

by RaHa, Tuesday, April 18, 2017, 14:52 (2536 days ago) @ Auge

Wenn ja, ersetze in der schon oben verlinkten Zeile 24 der install.php die Zeichenkette 'http//' vor .$_SERVER['HTTP_HOST'] durch $_SERVER["SERVER_PROTOCOL"], rufe das Installationsskript auf und prüfe die URL auf Vollständigkeit und die korrekte Angabe des Protokolls.

Das geht leider nicht. Da steht dann: HTTP/1.1example.net/mylittleforum-2.4.2/

Aber das geht:

'http'.str_replace("on","",str_ireplace("on","s", $_SERVER["HTTPS"])) .'://'.$_SERVER['HTTP_HOST']

forum_address in mlf2_settings

by RaHa, Wednesday, April 19, 2017, 09:53 (2535 days ago) @ RaHa

Ich Daffke ;-) ...

$default_settings['forum_address'] = 'http'.str_replace("on","s", strtolower($_SERVER["HTTPS"])) .'://'.$_SERVER['HTTP_HOST'].substr(rtrim(dirname($_SERVER['PHP_SELF']), '/\\'),0,strrpos(rtrim(dirname($_SERVER['PHP_SELF']), '/\\'),'/')).'/';
 
Avatar

forum_address in mlf2_settings

by Auge ⌂, Wednesday, April 19, 2017, 10:49 (2535 days ago) @ RaHa

Hallo

$default_settings['forum_address'] = 'http'.str_replace("on","s", strtolower($_SERVER["HTTPS"])) .'://'.$_SERVER['HTTP_HOST'].substr(rtrim(dirname($_SERVER['PHP_SELF']), '/\\'),0,strrpos(rtrim(dirname($_SERVER['PHP_SELF']), '/\\'),'/')).'/';

Ja, das ist die Zeile, die ich ändern will. Dass das mit der Idee aus meinem letzten Posting nicht funktioniert, hatte ich dort nachgetragen udn hast du ja selbst herausgefunden. Ich muss noch überlegen, wie man das Protokoll aus der URL ermitteln kann. Die Funktion parse_url mit dem Schalter PHP_URL_SCHEME sollte das erledigen können.

Tschö, Auge

--
Trenne niemals Müll, denn er hat nur eine Silbe!

forum_address in mlf2_settings

by RaHa, Wednesday, April 19, 2017, 12:19 (2535 days ago) @ Auge

'http'.str_replace("on","s", strtolower($_SERVER["HTTPS"])) .'://'


so funktioniert es.

Avatar

forum_address in mlf2_settings

by Auge ⌂, Wednesday, April 19, 2017, 13:09 (2535 days ago) @ RaHa

Hallo

'http'.str_replace("on","s", strtolower($_SERVER["HTTPS"])) .'://'


so funktioniert es.

Nein, so funktioniert es eben nicht allgemeingültig. Auf einem von zwei soeben von mir geprüften Servern steht diese Arrayfeld erst gar nicht zur Verfügung, auf dem anderen Server nur dann, wenn das Dokument auch tatsächlich per HTTPS aufgerufen wurde. Es gibt dort also keinen off-Status, wenn HTTPS nicht aktiviert ist. Dein Code würde bei meinem ersten Server grundsätzlich, beim zweiten genau dann platzen, wenn das Installationsskript ohne HTTPS aufgerufen würde.

Es ist schon etwas aufwendiger. Dennoch danke für deine Recherchen und Anregungen. Sie haben eine Unzulänglichkeit entlarvt und unsere Diskussion einen Lösungsansatz geliefert. :-)

Tschö, Auge

--
Trenne niemals Müll, denn er hat nur eine Silbe!

forum_address in mlf2_settings

by RaHa, Wednesday, April 19, 2017, 13:40 (2535 days ago) @ Auge

'http'.str_replace("on","s", strtolower($_SERVER["HTTPS"])) .'://'

Hallo Auge,
ich habe das auf meinen Server unter http:// und unter https:// aufgerufen und es funktionierte, obwohl das Arrayfeld nicht zur Verfügung steht.

Ansonsten gäbe es noch $_SERVER["SCRIPT_URI"]

$default_settings['forum_address'] = substr($_SERVER['SCRIPT_URI'], 0, strpos($_SERVER['SCRIPT_URI'], '/')).'//'.$_SERVER['HTTP_HOST'].substr(rtrim(dirname($_SERVER['PHP_SELF']), '/\\'),0,strrpos(rtrim(dirname($_SERVER['PHP_SELF']), '/\\'),'/')).'/';

das funktioniert auch auf meinem Server.

Danke,
RaHa

Avatar

forum_address in mlf2_settings

by Auge ⌂, Wednesday, April 19, 2017, 14:14 (2535 days ago) @ RaHa

Hallo

ich habe das auf meinen Server unter http:// und unter https:// aufgerufen und es funktionierte, obwohl das Arrayfeld nicht zur Verfügung steht.

Das "funktioniert", weil die PHP-Einstellungen für die Fehlermeldungen diese Meldungen typischerweise unterdrücken. Auf Produktivsystemen will man das auch so haben. Das Feld $_SERVER['https'] existiert eventuell dennoch nicht, womit diese Lösung unsauber ist. Auf anders eingerichteten Webservern kann es nämlich doch zur Meldung kommen, womit dort das Skript nicht sauber durchliefe.

Kann man also so machen, ist dann aber scheiße.

Ansonsten gäbe es noch $_SERVER["SCRIPT_URI"]

Ja, das benutze ich auch in meiner (noch nicht fertigen) Lösung. Ich verlasse mich nur nicht auf das Herumschnippeln in der Zeichenkette.

Tschö, Auge

--
Trenne niemals Müll, denn er hat nur eine Silbe!

Avatar

forum_address in mlf2_settings

by Auge ⌂, Wednesday, April 19, 2017, 17:46 (2535 days ago) @ RaHa

Hallo

Ansonsten gäbe es noch $_SERVER["SCRIPT_URI"]

das funktioniert auch auf meinem Server.

Tja, man soll es nicht für möglich halten, aber es gibt auf meinem eigenen Webspace weder $_SERVER["SCRIPT_URI"] noch eine andere Server- oder Umgebungsvariable, die die URL samt Protokoll enthält. Also muss ich einen anderen Ansatz suchen. Das wird wohl auf JavaScript mit einem ersatzweisen Hinweis, die URL genauestens zu prüfen, hinauslaufen. :-(

Tschö, Auge

--
Trenne niemals Müll, denn er hat nur eine Silbe!

Avatar

forum_address in mlf2_settings

by Micha ⌂, Wednesday, April 19, 2017, 18:04 (2535 days ago) @ Auge

Hi,

habt Ihr nach diesem Problem auch mal gesucht? Ich finde Lösungen, die von Euren bisherigen Ansätzen abweichen. Ich würde hier auch nix mit JS machen. Einfach HTTPS ausliefern, wenn es ermittelt werden konnte, sonst HTTP.

/Micha

--
applied-geodesy.org - OpenSource Least-Squares Adjustment Software for Geodetic Sciences

Avatar

forum_address in mlf2_settings, auch an RaHa

by Auge ⌂, Wednesday, April 19, 2017, 19:46 (2535 days ago) @ Micha

Hallo

habt Ihr nach diesem Problem auch mal gesucht?

Über den Tag hinweg konnte ich das nicht tun, mittlerweile habe ich das aber doch getan …

Ich finde Lösungen, die von Euren bisherigen Ansätzen abweichen.

… und habe eine andere Lösung, die in die selbe Richtung geht, gefunden.

Ich würde hier auch nix mit JS machen. Einfach HTTPS ausliefern, wenn es ermittelt werden konnte, sonst HTTP.

Eine JS-basierte Lösung ist in einem solchen Fall mMn immer nur als Erweiterung oder als Zusatz zu suchen. Ich hatte aber zwischendurch das Gefühl, dass mir PHP Beine stellt. Ich habe nun folgende Zeile auf meinem Webspace getestet.

$default_settings['forum_address'] = ((!empty($_SERVER['HTTPS']) and $_SERVER['HTTPS'] == "on") ? 'https' : 'http') .'://'. $_SERVER['HTTP_HOST'].substr(rtrim(dirname($_SERVER['SCRIPT_NAME']), '/\\'), 0, strrpos(rtrim(dirname($_SERVER['SCRIPT_NAME']), '/\\'), '/')).'/';

Die Prüfung erfolgt, wie auf der von dir verlinkten Seite, auf einen nicht leeren und mit "on" identischen Wert von $_SERVER['HTTPS']. RaHas Ansatz ist also korrekt – danke dafür, RaHa – und musste nur um den Fall IIS erweitert werden, bei dem $_SERVER['HTTPS'] immer gesetzt ist und bei einem Aufruf, der nicht über HTTPS erfolgt, den Wert "off" hat. Das macht die zusätzliche Prüfung auf den konkreten Wert erforderlich.

Ich prüfe das noch einmal auf anderen Servern und commite das ins Repo.

Tschö, Auge

--
Trenne niemals Müll, denn er hat nur eine Silbe!

Avatar

forum_address in mlf2_settings, auch an RaHa

by Micha ⌂, Thursday, April 20, 2017, 06:23 (2535 days ago) @ Auge

Hallo,

Die Prüfung erfolgt, wie auf der von dir verlinkten Seite, auf einen nicht leeren und mit "on" identischen Wert von $_SERVER['HTTPS'].

Das steht eben gerade NICHT auf der von mir verlinkten Seite. Soweit ich das recherchiert habe, darf in $_SERVER['HTTPS'] alles möglich stehen, wenn es aktiv ist. Daher würde ich tatsächlich auf OFF prüfen, denn dieser Wert scheint auch gesichert zu sein. Ferner würde ich eine Funktion bevorzugen, sodass wir ggf. später weitere Fälle noch abbilden können. Auf der von mir gezeigten Seite wäre das bspw. der Port.

Viele Grüße
Micha

--
applied-geodesy.org - OpenSource Least-Squares Adjustment Software for Geodetic Sciences

Avatar

forum_address in mlf2_settings, auch an RaHa

by Auge ⌂, Thursday, April 20, 2017, 06:44 (2535 days ago) @ Micha

Hallo

Die Prüfung erfolgt, wie auf der von dir verlinkten Seite, auf einen nicht leeren und mit "on" identischen Wert von $_SERVER['HTTPS'].


Das steht eben gerade NICHT auf der von mir verlinkten Seite. Soweit ich das recherchiert habe, darf in $_SERVER['HTTPS'] alles möglich stehen, wenn es aktiv ist.

Nochmal in die PHP-Doku geschaut, tatsächlich (nach 'HTTPS' suchen, die einzelnen Punkte sind leider nicht direkt anspringbar).

'HTTPS'
Set to a non-empty value if the script was queried through the HTTPS protocol.

… und …

Note: Note that when using ISAPI with IIS, the value will be off if the request was not made through the HTTPS protocol.

Wenn MS also nichts am IIS ändert, ist die Prüfung auf != "off" die sichere Wahl.

Ferner würde ich eine Funktion bevorzugen, sodass wir ggf. später weitere Fälle noch abbilden können.

Ja, das halte auch ich für sinnvoll.

Tschö, Auge

--
Trenne niemals Müll, denn er hat nur eine Silbe!

forum_address in mlf2_settings, auch an RaHa

by RaHa, Thursday, April 20, 2017, 11:55 (2534 days ago) @ Auge

Hallo Auge,
soviel Aufwand für einen simplen Installationsprozess ;-)
freut mich, dass ich helfen konnte ;-)

Hab's getestet funktioniert :-) :-)

Avatar

forum_address in mlf2_settings, auch an RaHa

by Auge ⌂, Thursday, April 20, 2017, 12:41 (2534 days ago) @ RaHa

Hallo

soviel Aufwand für einen simplen Installationsprozess ;-)

Naja, wir haben da zwei Möglichkeiten. Lassen, wie es ist oder ändern.

Lassen wir es und weisen die Admins darauf hin, selbst für die korrekte Eintragung zu sorgen, bekommt's wohl die Mehrheit nicht mit – dir ist das ja bei den tests selbst zweimal passiert, obwohl du das Problem kanntest – und schlägt dann mit Fehlermeldungen hier auf. Wenn wir uns das – zumindest für den Installationsprozess (!) – sparen wollen, müssen wir da ran, auch wenn das Skript normalerweise nur einmal benutzt wird.

Läuft's dieses eine Mal nicht, sind die Benutzer aber gleich wieder weg, ganz weg! Das wollen wir nicht.

Tschö, Auge

--
Trenne niemals Müll, denn er hat nur eine Silbe!

forum_address in mlf2_settings, auch an RaHa

by RaHa, Thursday, April 20, 2017, 12:55 (2534 days ago) @ Auge

soviel Aufwand für einen simplen Installationsprozess ;-)


Naja, wir haben da zwei Möglichkeiten. Lassen, wie es ist oder ändern.

Hallo Auge,
das war eine ironische Bemerkung von mir und sollte zum Ausdruck bringen, dass Du Dir soviel viel Mühe damit gemacht hast! Da die Bemerkung wohl an-/aufgestoßen ist, hier nocn mal:

Danke Auge, dass Du Dir so viel Mühe machst und danke für Deine Arbeit bei/im/mit MLF!

:-) :-) :-) :-) :-)

forum_address in mlf2_settings

by RaHa, Thursday, April 20, 2017, 14:15 (2534 days ago) @ Auge

Hallo Auge,

was wäre mit $_SERVER['REQUEST_SCHEME']?! Ich habe auf Servern bei 4 verschiendenen Providern mit verschiedenen PHP-Installationen nachgeschaut. Diese Variable war immer vorhanden und steht entsprechend (geprüft) auf http oder https.

Avatar

forum_address in mlf2_settings

by Micha ⌂, Thursday, April 20, 2017, 14:18 (2534 days ago) @ RaHa

Hi,

was wäre mit $_SERVER['REQUEST_SCHEME']?!

. Alles, was in $_SERVER steht, scheint eher optional zu sein. Daher mein Vorschlag, es als Funktion zu definieren und mehrere Fälle dort abbilden.

/Micha

--
applied-geodesy.org - OpenSource Least-Squares Adjustment Software for Geodetic Sciences

Avatar

forum_address in mlf2_settings, pull request is ready

by Auge ⌂, Friday, April 21, 2017, 16:35 (2533 days ago) @ RaHa

Hello

Notice for me to keep the track over the processed reports.

The pull request waits for a review.

--
Trenne niemals Müll, denn er hat nur eine Silbe!

forum_address in mlf2_settings, pull request is ready

by RaHa, Saturday, April 22, 2017, 06:45 (2533 days ago) @ Auge

Hallo Auge,
wäre es richtiger wenn
isHTTPSProtocol() true oder false und
getURLProtocol() http oder https bzw. http:// oder https://
zurück gäbe.

Avatar

forum_address in mlf2_settings, pull request is ready

by Micha ⌂, Saturday, April 22, 2017, 07:12 (2533 days ago) @ RaHa

Hallo,

wäre es richtiger wenn
isHTTPSProtocol() true oder false und

Das wäre mein Vorschlag.

getURLProtocol() http oder https bzw. http:// oder https://

Das erscheint mit dann redundant zu sein - also entweder oder.

/Micha

--
applied-geodesy.org - OpenSource Least-Squares Adjustment Software for Geodetic Sciences

Avatar

forum_address in mlf2_settings, pull request is ready

by Auge ⌂, Saturday, April 22, 2017, 11:26 (2532 days ago) @ Micha

Hallo,

wäre es richtiger wenn
isHTTPSProtocol() true oder false und


Das wäre mein Vorschlag.

Das klingt schlüssig. Ich werde die Funktion umbenennen.

Tschö, Auge

--
Trenne niemals Müll, denn er hat nur eine Silbe!

Avatar

forum_address in mlf2_settings, pull request is ready

by Auge ⌂, Sunday, April 23, 2017, 17:54 (2531 days ago) @ Micha

Hallo

wäre es richtiger wenn
isHTTPSProtocol() true oder false und


Das wäre mein Vorschlag.

Ich möchte einen anderen Namen vorschlagen, der quasi die gesproche Frage ist. Wie sieht's mit isProtocolHTTPS aus?

Tschö, Auge

--
Trenne niemals Müll, denn er hat nur eine Silbe!

Avatar

forum_address in mlf2_settings, pull request is ready

by Micha ⌂, Sunday, April 23, 2017, 19:05 (2531 days ago) @ Auge

Hallo,

mach ruhig. Der zuvor gewählte Name (der Getter) klang nur so, als würde die Funktion HTTPS bzw. HTTP zurückliefern und nicht einen Boolean.

Viele Grüße
Micha

--
applied-geodesy.org - OpenSource Least-Squares Adjustment Software for Geodetic Sciences

RSS Feed of thread