Précédent   Forum des professionnels en informatique > PHP > Langage > Fonctions
Fonctions Forum d'entraide sur les fonctions PHP. Avant de poster -> FAQ fonctions et Sources diverses
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 26/06/2008, 11h22   #1
Membre éprouvé
 
Homme Marwan Rabbaa
Technophile Web
Inscription : mai 2007
Messages : 930
Détails du profil
Informations personnelles :
Nom : Homme Marwan Rabbaa

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

Informations forums :
Inscription : mai 2007
Messages : 930
Points : 412
Points : 412
Envoyer un message via MSN à sliderman Envoyer un message via Yahoo à sliderman
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 :
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 :
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 ?
__________________
http://aldorande.miniville.fr/ind
Fedora 8, eclipse 3.3 sur x86_64
--------------
Colorer votre code php
sliderman est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/06/2008, 11h46   #2
En attente de confirmation mail
 
Inscription : juin 2002
Messages : 6 164
Détails du profil
Informations forums :
Inscription : juin 2002
Messages : 6 164
Points : 6 404
Points : 6 404
La variable SERVER_PROTOCOL ne montrera jamais l'usage ou non de la surcouche SSL.

Pour ça vous avez la variable HTTPS :
Code :
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)
julp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/06/2008, 12h07   #3
Membre éprouvé
 
Homme Marwan Rabbaa
Technophile Web
Inscription : mai 2007
Messages : 930
Détails du profil
Informations personnelles :
Nom : Homme Marwan Rabbaa

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

Informations forums :
Inscription : mai 2007
Messages : 930
Points : 412
Points : 412
Envoyer un message via MSN à sliderman Envoyer un message via Yahoo à sliderman
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 :
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
__________________
http://aldorande.miniville.fr/ind
Fedora 8, eclipse 3.3 sur x86_64
--------------
Colorer votre code php
sliderman est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/06/2008, 13h27   #4
En attente de confirmation mail
 
Inscription : juin 2002
Messages : 6 164
Détails du profil
Informations forums :
Inscription : juin 2002
Messages : 6 164
Points : 6 404
Points : 6 404
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 :
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.
julp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/06/2008, 14h20   #5
Membre éprouvé
 
Homme Marwan Rabbaa
Technophile Web
Inscription : mai 2007
Messages : 930
Détails du profil
Informations personnelles :
Nom : Homme Marwan Rabbaa

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

Informations forums :
Inscription : mai 2007
Messages : 930
Points : 412
Points : 412
Envoyer un message via MSN à sliderman Envoyer un message via Yahoo à sliderman
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
__________________
http://aldorande.miniville.fr/ind
Fedora 8, eclipse 3.3 sur x86_64
--------------
Colorer votre code php
sliderman est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 20h51.


 
 
 
 
Partenaires

Hébergement Web