Herausfinden, ob SSL verwendet wird
Markus
- php
0 Henrico Hamstar0 Rouven0 Markus
0 dedlfix
0 Cybaer0 dedlfix
0 Cybaer0 Thomas J.S.
0 Christian Seiler
Hey,
ich hab folgendes Problem.
Hab bei meinem Hoster all-inkl die Möglichkeit über den SSL-Proxy ssl-account.com zu routen.
Nun will ich auf meiner Seite einen Button einbauen, über den man zu SSL bzw. nicht SSL wechseln kann.
Nun muss ich bei der Ausgabe irgendwie herausfinden, ob SSL im Moment verwendet wird oder nicht. Leider geht es mit dem Port usw nicht, da ja für den Server der Port der gleiche ist, es läuft ja nur über einen SSL Proxy.
Eine Möglichkeit wäre vielleicht noch die Remote-IP. Wenn die Remote-IP ungleich der IP des Proxies ist, ist SSL nicht aktiv.
Eigentlich muss ich ja nur herausfinden, ob die ersten 5 Zeichen der URL https sind. Geht das mit PHP auch oder sollte ich das einfach mit JS realisieren? Wenn ja wie ließt man da die URL aus?
Grüße Markus
Eigentlich muss ich ja nur herausfinden, ob die ersten 5 Zeichen der URL https sind. Geht das mit PHP auch oder sollte ich das einfach mit JS realisieren? Wenn ja wie ließt man da die URL aus?
Nur mal so als Anregung. Gleich komplett auf SSL gehen oder eben unsicher bleiben.
Beides zusammen ist merkwuerdig.
Eigentlich muss ich ja nur herausfinden, ob die ersten 5 Zeichen der URL https sind. Geht das mit PHP auch oder sollte ich das einfach mit JS realisieren? Wenn ja wie ließt man da die URL aus?
Nur mal so als Anregung. Gleich komplett auf SSL gehen oder eben unsicher bleiben.
Beides zusammen ist merkwuerdig.
Hm jo, aber mich stört, dass dann in der URL immer das ssl-account.com steht. 90€ oder mehr für ein eigenes Zertifikat lohnt sich nicht finde ich. Eigentlich reicht ssl ja bei Formularen usw, für normale Seiten lohnt es sich wohl kaum.
Hallo Markus,
Nur mal so als Anregung. Gleich komplett auf SSL gehen oder eben unsicher bleiben.
Beides zusammen ist merkwuerdig.
Hm jo, aber mich stört, dass dann in der URL immer das ssl-account.com steht. 90€ oder mehr für ein eigenes Zertifikat lohnt sich nicht finde ich. Eigentlich reicht ssl ja bei Formularen usw, für normale Seiten lohnt es sich wohl kaum.
Meistens kommt es auf die Art der Seiten an, die man benötigt.
Ich beispielsweise benutze ein SSL-Zertifikat von CAcert.
Wenn der Audit von CAcert endlich abgeschlossen ist, besteht die Möglichkeit, dass diese Zertifikate nach und nach in den Browsern und E-Mail-Programmen anerkannt werden.
Und: Diese Zertifikate sind kostenlos. Bis die Browser alle das Root-Zertifikat von CAcert inne haben wird es natürlich noch ein Weilchen dauern - bis dahin muss man sich noch mit einem entsprechenden Sicherheitshinweis beim Aufruf einer SSL-Seite zufriedenstellen, oder man kauft eben ein Zertifikat.
Grüße
Marc Reichelt || http://www.marcreichelt.de/
Hallo nochmals,
Wenn der Audit von CAcert endlich abgeschlossen ist, besteht die Möglichkeit, dass diese Zertifikate nach und nach in den Browsern und E-Mail-Programmen anerkannt werden.
Da möchte ich noch kurz etwas ergänzen:
Den Status des Audits kann man im Wiki von CAcert mitverfolgen. Wie man sieht, gibt es bei einem Audit ordentlich zu tun.
Grüße
Marc Reichelt || http://www.marcreichelt.de/
Hello,
du könntest dich mal an $_SERVER['SERVER_PROTOCOL'] versuchen.
MfG
Rouven
Hello,
du könntest dich mal an $_SERVER['SERVER_PROTOCOL'] versuchen.
MfG
Rouven
Geht nicht, beides mal HTTP.
Ich machs nun mit der Remote IP. Damit funktionierts.
Trotzdem danke!
echo $begrüßung;
Nun muss ich bei der Ausgabe irgendwie herausfinden, ob SSL im Moment verwendet wird oder nicht.
Wenn SSL verwendet wird, gibt es in $_SERVER einen Key namens HTTPS, der dann den Wert on hat.
echo "$verabschiedung $name";
Hi,
Wenn SSL verwendet wird, gibt es in $_SERVER einen Key namens HTTPS, der dann den Wert on hat.
Jep. Und ob der eigene Server das macht, läßt sich ja schnell feststellen.
Bei Skripten die portabel sein sollen/müssen, ist aber AFAIK zu beachten, daß man sich darauf, wie auf die Existenz anderer $_SERVER-Variablen auch, nicht 100%ig verlassen kann. Ich persönlich teste deswegen lieber mehrstufig (z.B. mit Hilfe von parse_url()), und verlasse mich nicht alleine auf die (ggf. fehlende) HTTPS-Angabe des Servers.
Gruß, Cybaer
echo $begrüßung;
Bei Skripten die portabel sein sollen/müssen, ist aber AFAIK zu beachten, daß man sich darauf, wie auf die Existenz anderer $_SERVER-Variablen auch, nicht 100%ig verlassen kann.
Ja, denn diese sind teilweise vom Server bereitgestellt und nicht alle genormt oder es wurden nicht alle genormten verwendet, wobei der Grund des Fehlens auch sein kann, dass für einen Eintrag notwendige Voraussetzungen fehlen: z.B. ohne Authentisierung keine Authentisierungsdaten.
Ich persönlich teste deswegen lieber mehrstufig (z.B. mit Hilfe von parse_url()), und verlasse mich nicht alleine auf die (ggf. fehlende) HTTPS-Angabe des Servers.
Die Frage wäre dann, woher nimmst du die URL (inklusive Protokollangabe)? In $_SERVER ist als vollständige URL nur der Referrer enthalten, und der nützt ja gleich gar nichts.
echo "$verabschiedung $name";
Hi,
Die Frage wäre dann, woher nimmst du die URL (inklusive Protokollangabe)? In $_SERVER ist als vollständige URL nur der Referrer enthalten,
Nein, $_SERVER['SCRIPT_URI'] bzw. auch noch $_SERVER['REQUEST_URI'].
Ggf. auch $_SERVER['SCRIPT_URL'] und $_SERVER['argv']
Und last but not least: Über die Portnummer läßt sich in allergrößter Not auch noch rückschließen.
Gruß, Cybaer
echo $begrüßung;
Die Frage wäre dann, woher nimmst du die URL (inklusive Protokollangabe)? In $_SERVER ist als vollständige URL nur der Referrer enthalten,
Nein, $_SERVER['SCRIPT_URI'] bzw. auch noch $_SERVER['REQUEST_URI'].
Ggf. auch $_SERVER['SCRIPT_URL'] und $_SERVER['argv']
SCRIPT_URI ist nicht genormt und ist nicht überall vorhanden und muss noch nicht mal mit der tatsächlich aufgerufenen URL übereinstimmen.
REQUEST_URI enthält nur den Teil path und query. SCRIPT_URL ist, wenn überhaupt vorhanden, wie REQUEST_URI (möglicherweise aber auch anders, wenn mod_rewrite oder mod_userdir zum Einsatz kam)
Und last but not least: Über die Portnummer läßt sich in allergrößter Not auch noch rückschließen.
Die Betonung liegt auf "allergrößter Not", denn die Portnummer ist ebenso (un)zuverlässig wie der Referrer.
Das sicherste scheint mir immer noch das auch im Handbuch erwähnte HTTPS zu sein.
echo "$verabschiedung $name";
Hi,
Das sicherste scheint mir immer noch das auch im Handbuch erwähnte HTTPS zu sein.
Ja, sorry, da habe ich mich verguckt! :-/
Ich bastel mir in meiner Standard-Lib zur späteren Nutzung einen vollständigen URL zusammen unter Heranziehung der genannten Variablen. Für den Protokollteil ziehe ich in der Tat aber auch nur die HTTPS-Abfrage heran ...
... und die Abfrage der Portnummer hatte anfangs ich mal drin, ist es aber nicht mehr.
Das werde ich geändert haben, als ich mir sicher war, daß es via HTTPS definitiv besser funktioniert.
Der serverübergreifende Unterschied war "nur", daß, s. Christian, der IE ggf. auch HTTPS off hat und der Apache nicht.
Gruß, Cybaer
Hallo,
z.B. ohne Authentisierung keine Authentisierungsdaten.
Eigentlich sollte das in diesem Zusammenhang "Authentifizierung" und "Authentifizierungsdaten" heissen. (zu: authentisch + facere (machen))
Der Unterschied ist zwar klein:
authentifizieren: beglaubigen, bestätigen, versichern, bekräftigen
authentisieren: belegen, glaubwürdig machen (aber eher nur in der Rechtssprechung gebräuchlich)
aber (wie ich finde) doch relevant.
Grüße
Thomas
Der Unterschied ist zwar klein:
authentifizieren: beglaubigen, bestätigen, versichern, bekräftigen
Hier steckt das, huestel, ficere drin, also das Machen bzw. die bewusste Entscheidung bzw. die Feststellung.
authentisieren: belegen, glaubwürdig machen (aber eher nur in der Rechtssprechung gebräuchlich)
Authentisch heisst "echt", ein Authentisieren kann es eigentlich nicht geben.
Hallo,
authentisieren: belegen, glaubwürdig machen (aber eher nur in der Rechtssprechung gebräuchlich)
Authentisch heisst "echt", ein Authentisieren kann es eigentlich nicht geben.
RaFD (read a fucking dictionary).
Thomas
authentisieren: belegen, glaubwürdig machen (aber eher nur in der Rechtssprechung gebräuchlich)
Authentisch heisst "echt", ein Authentisieren kann es eigentlich nicht geben.
RaFD (read a fucking dictionary).
Eine Echtheitsueberpruefung muss immer von einer bereits als echt bestaetigten Stelle vorgenommen werde, meine ich.
So wirds auch immer in IT implementiuert.
Darum ist es eben eine Fikation.
Hallo,
authentisieren: belegen, glaubwürdig machen (aber eher nur in der Rechtssprechung gebräuchlich)
Authentisch heisst "echt", ein Authentisieren kann es eigentlich nicht geben.
RaFD (read a fucking dictionary).
Eine Echtheitsueberpruefung muss immer von einer bereits als echt bestaetigten Stelle vorgenommen werde, meine ich.
So wirds auch immer in IT implementiuert.
Kannst du oder willst du nicht lesen was ich geschrieben habe?
Darum ist es eben eine Fikation.
Ich habe bereits geschrieben:
"authentisieren: belegen, glaubwürdig machen
(aber eher nur in der Rechtssprechung gebräuchlich)"
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Z.B.: "Der Zeuge authentisierte den Angeklagten".
Alles andere zu den beiden Wörter findest du in einem guten Wörterbuch.
Thomas
Ich habe bereits geschrieben:
"authentisieren: belegen, glaubwürdig machen
(aber eher nur in der Rechtssprechung gebräuchlich)"
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Z.B.: "Der Zeuge authentisierte den Angeklagten".
"Authentication" ist aber ein Wortfehler, ebenso die Uebersetzung "Authentisierung". Als sprachlich durchaus sensibler Mensch moechte ich das nicht unangemerkt lassen.
Also, wir merken uns (fuers Archiv!):
Authentifizieren ist ein Vorgang der das lateinische Wort "facere" beinhaltet und das u.a. deswegen, weil eine Authentifizierung eben nicht durch die handelnde Person selbst erfolgen kann, sondern nur durch Dritte, d.h. eine Authentifizierung ist ein Vorgang.
Vgl. auch Californication, Petrification und Identication. :)
Hallo,
Ich habe bereits geschrieben:
"authentisieren: belegen, glaubwürdig machen
(aber eher nur in der Rechtssprechung gebräuchlich)"
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Z.B.: "Der Zeuge authentisierte den Angeklagten".
"Authentication" ist aber ein Wortfehler,
Zeige bitte die Stelle wo ich "Authentication" geschrieben habe!
ebenso die Uebersetzung "Authentisierung".
Zeige bitte die Stelle wo ich "Authentisierung" geschrieben habe!
Als sprachlich durchaus sensibler Mensch moechte ich das nicht unangemerkt lassen.
Als solches solltest du über ein gutes Wörterbuch verfügen und hättest nachlesen können/sollen. Warum hast du es nicht gemacht?
Und als solches solltest du doch dabei bleiben worum es geht und nicht irgendwelche Wörter, über die keiner gesprochen hat, heranziehen.
Also, wir merken uns (fuers Archiv!):
Authentifizieren ist ein Vorgang der das lateinische Wort "facere" beinhaltet und das u.a. deswegen, weil eine Authentifizierung eben nicht durch die handelnde Person selbst erfolgen kann, sondern nur durch Dritte, d.h. eine Authentifizierung ist ein Vorgang.
Habe ich über "authentifizieren" (Verb!) etwa Gegenteiliges gesagt? Zeige bitte die Stelle!
Thomas
PS: Du bleibst wie du schon vorher warst: du redest erst permanent von falschen "dies und das" und wenn man dir nahelegt doch selbst nachzulesen, tust du es nicht, sondern wechselst das Thema wieder und redest von Sachen die weder jemand erwähnte noch anzweifelte.
Deine Meinungen sind mir eigentlich voellig egal, ich wollte etwas ergaenzen und Dir nicht widersprechen. Wenn ich Dir doch in Einzelpunkten widersprochen haben sollte, war das eher ein Nebeneffekt. Es ging mir um das Verstaendnis und die Bewertung von "Authentication" und der Uebersetzung "Authentisierung".
Deine Herangehensweise mag (formal) richtig sein, no prob.
Wenn jemand eine andere Herleitung fuer Authentication hat als der von mir bemuehte Wortfehler, so ist auch das sehr willkommen.
Ueberpruefe (Authentisiere :) mal Deine Diskussionskultur!
Oder - um rechtzeitig zur Jahrerswende noch etwas Freundliches nachzuschieben - ich fand Deinen Einwurf beachtenswert. Mir zumindest ist die Existenz des Wortes Authentisierung bisher voellig entgangen.
In diesem Sinne - guten Rutsch und so!
Hallo dedlfix,
Wenn SSL verwendet wird, gibt es in $_SERVER einen Key namens HTTPS, der dann den Wert on hat.
Der Key ist allerdings nicht standardisiert, z.B. nicht Teil der CGI-Spezifikation. Sowohl Apache als auch IIS setzen die Umgebungsvariable HTTPS=on, wenn SSL/TLS verwendet wird. Wenn dagegen kein SSL/TLS verwendet wird, kann eines der folgenden beiden Situationen eintreten:
- HTTPS=off beim IIS, falls die SSL/TLS-Erweiterung prinzipiell aktiviert,
nur für diesen Request nicht verwendet wurde
- HTTPS gar nicht gesetzt immer beim Apache oder beim IIS ohne installierte/
aktivierte SSL/TLS-Erweiterung
Bei anderen Webservern weiß ich nicht, ob die das genauso tun (wie gesagt: kein Standard) - daher sollte man sich nur darauf verlassen, wenn man weiß, dass der Webserver wie ein Apache oder IIS reagiert.
Noch etwas: Die Umgebungsvariable HTTPS kann nur dann relevant sein, wenn _direkt_ mit dem Webserver über SSL/TLS gesprochen wird - wenn ein SSL-Proxy verwendet wird, dann bekommt der Webserver vom Proxy nur eine HTTP-Anfrage - daher bleibt dann die einzige mögliche Identifikationsmöglichkeit die IP des SSL-Proxies.
Viele Grüße,
Christian