IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

redirection en https


Sujet :

Langage PHP

  1. #1
    Membre confirmé
    Homme Profil pro
    Technophile Web
    Inscrit en
    Mai 2007
    Messages
    930
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Technophile Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2007
    Messages : 930
    Points : 467
    Points
    467
    Par défaut redirection en https
    Bonjour,

    Je voudrais sécurisez la procédure d'authentification sur mon site (afficher la page de login en https).
    J'utilise cette méthode,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    $scheme=explode('/',$_SERVER['SERVER_PROTOCOL']);
    	if($scheme[0]=="HTTP")
    	{
    		header('Location : https://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']);
    	}
    mais elle n'a pas l'air de fonctionner, pourtant j'ai créer un certificat avec openssl et j'ai activer SSL dans la conf de apache
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    SSLMutex none
    SSLSessionCache none
    <VirtualHost _default_:443>
    SSLEngine On
    SSLCertificateFile monfichier.cert
    SSLCertificateKeyFile monfichier.key
    </VirtualHost>
    comment puis je redirigez vers https ?

  2. #2
    Expert éminent sénior

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Points : 17 777
    Points
    17 777
    Par défaut
    La variable SERVER_PROTOCOL ne montrera jamais l'usage ou non de la surcouche SSL.

    Pour ça vous avez la variable HTTPS :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if (!isset($_SERVER['HTTPS']) || $_SERVER['HTTPS'] != 'on') {
       # ...
    }
    Mais vous pouvez, entre autres, réaliser cette redirection depuis votre virtualhost HTTP à l'aide des directives Redirect* (ex : RedirectPermanent /toto/tata.php https://domaine/toto/tata.php)

  3. #3
    Membre confirmé
    Homme Profil pro
    Technophile Web
    Inscrit en
    Mai 2007
    Messages
    930
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Technophile Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2007
    Messages : 930
    Points : 467
    Points
    467
    Par défaut
    chez moi la variable $_SERVER['HTTPS'] n'existe pas

    EDIT : en fait si elle exuiste mais elle n'est créer que lors du passage en HTTPS

    maintenant voila j'ai
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    if(!isset($_SERVER['HTTPS']))
    	{
    		header('Location : https://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']);
    	}
    mais non toujours pas de redirection automatique en https

  4. #4
    Expert éminent sénior

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Points : 17 777
    Points
    17 777
    Par défaut
    Vous devez bien savoir si :
    1. la condition est convenablement remplie ou non ;
    2. vous avez utilisé la fonction header en respectant les contraintes qu'elle impose (ie aucun envoi au client avant, qui devrait, dans le cas contraire, être signalé si votre environnement est correctement configuré). Les navigateurs (IE surtout, pour ne pas le citer) étant parfois très "strict" au niveau de la forme des entêtes http reçus.

    Ceci ne nous apparaissant pas et n'étant pas précisé.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <?php
    if (!isset($_SERVER['HTTPS']) || $_SERVER['HTTPS'] != 'on') {
        header('Location: https://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']);
        exit;
    }
    echo 'En HTTPS';
    Fonctionne très bien.

  5. #5
    Membre confirmé
    Homme Profil pro
    Technophile Web
    Inscrit en
    Mai 2007
    Messages
    930
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Technophile Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2007
    Messages : 930
    Points : 467
    Points
    467
    Par défaut
    Citation Envoyé par julp Voir le message
    la condition est convenablement remplie ou non ;
    oui
    Citation Envoyé par julp Voir le message
    vous avez utilisé la fonction header en respectant les contraintes qu'elle impose (ie aucun envoi au client avant, qui devrait, dans le cas contraire, être signalé si votre environnement est correctement configuré).
    oui

    la demande pour passer en HTTPS et bonne mais elle ne se fait pas
    je ne sais pas pourquoi
    je rentr dans la condition, mais le header ne me redirige pas

Discussions similaires

  1. [c#]Redirection automatique http vers https
    Par Filippo dans le forum ASP.NET
    Réponses: 3
    Dernier message: 02/12/2009, 09h57
  2. Redirection et https
    Par delagoutte dans le forum Apache
    Réponses: 1
    Dernier message: 04/11/2009, 14h07
  3. Redirection si HTTP 404
    Par NizarK dans le forum Général JavaScript
    Réponses: 10
    Dernier message: 08/08/2008, 12h02
  4. Redirection page http en https
    Par krina dans le forum Serveurs (Apache, IIS,...)
    Réponses: 1
    Dernier message: 03/01/2006, 16h35
  5. [Sécurité] Rédirection pages Http en Https
    Par krina dans le forum Langage
    Réponses: 6
    Dernier message: 03/01/2006, 13h37

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo