"https" zuverlässig erkennen?

Thema wurde von Manni_HB, 11. Januar 2016 erstellt.

  1. Manni_HB
    Manni_HB G-WARD 2012/13/14/15
    Registriert seit:
    26. April 2011
    Beiträge:
    9.098
    Danke erhalten:
    1.540
    Danke vergeben:
    909
    Ort:
    Bremen
    Falls der Adminbereich über SSL läuft, ist dies eine zuverlässige Erkennung auf allen Servern?
    PHP:
    $protocol stripos($_SERVER['SERVER_PROTOCOL'],'https') === true 'https://' 'http://';
    Nur "ENABLE_SSL_CATALOG" scheint mir a´bisserl riskant, da von User-Eingabe abhängig?
     
  2. Avenger
    Avenger G-WARD 2012/13/14/15
    Registriert seit:
    26. April 2011
    Beiträge:
    4.771
    Danke erhalten:
    1.478
    Danke vergeben:
    89
    Nein, reicht nicht....

    Im Frontend ("application_top") wird das wie folgt geprüft:

    PHP:
    $request_type = (getenv('HTTPS') == '1' || getenv('HTTPS') == 'on') ? 'SSL' 'NONSSL';

    if(
    $request_type == 'SSL' || !empty($_SERVER['HTTP_X_FORWARDED_HOST'])) {
        
    define('GM_HTTP_SERVER'HTTPS_SERVER);
    } else {
        
    define('GM_HTTP_SERVER'HTTP_SERVER);
    }
     
  3. Anonymous
    Anonymous Erfahrener Benutzer
    Mitarbeiter
    Registriert seit:
    22. Juni 2011
    Beiträge:
    4.760
    Danke erhalten:
    1.749
    Danke vergeben:
    137
    Hallo,

    wegen des von Avenger zitierten Teils kann man sich an $GLOBALS['request_type'] orientieren.

    Bezüglich $_SERVER['HTTP_X_FORWARDED_HOST'] möchte ich noch etwas anmerken: Das ist nichtleer, sobald der Webserver hinter einem Reverse Proxy steht. Das ist zwar in aller Regel ein SSL-Proxy, es gibt aber auch die (extrem seltene) Situation, dass alle Requests über einen Reverse Proxy laufen, und dann muss man auch diese Stelle in application_top.php anpassen.