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 :

[Sécurité] Redirection php sur un site sécurisé ssl


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 45
    Par défaut [Sécurité] Redirection php sur un site sécurisé ssl
    Bonjour à tous,

    J'ai écumé les forums et FAQ sans trouver de réponse à mon problème :

    En stage, je développe un site pour une société, nous avons décidé de développer le site sur deux serveurs (pour diverses raisons...)

    Le problème est que cet autre serveur utilise un canal SSL avec identification (une fenêtre nous demande mot de passe et login). Des comptes sont crées sur ce serveur pour mes utilisateurs.

    Ce que je cherche à faire c'est une redirection php d'une de mes pages vers la page d'acceuil de ce second serveur, sans faire apparaitre la fenetre de mot de passe (car mon utilisateur ne les connait pas)

    J'ai pour le moment une solution qui fonctionne sur firefox, mais qui n'est pas sécurisée ( en gros un header de ce type :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    header('Location: https//login:password@sitenumero2.com');
    )

    Cette soluton n'est pas terrible du tout car non sécurisée et non fonctionelle sur IE, j'essaye pour le moment avec ce script :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    $args = base64_encode($_POST['login'].':'.$_POST['password']);
    header("Authorization: Basic $args");
    header("Location: https://sitenumero2.com",false);
    Et ça ne fonctionne pas non plus.

    J'ai cherché un peu du coté des variables _AUTH_ de http mais ça ne me parle pas beaucoup.

    Voilà, quelqu'un aurait-il la solution miracle ?

    Merci !

    Colin

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 45
    Par défaut
    ...

    Voilà l'avancement des choses, je pense pouvoir y parvenir en passant par les fonctions cURL de php. Voici un début de script, il me resterait à obtenir les certificats et paramètres SSL de l'autre serveur pour configurer correctement la fonction.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
     
    <?php
    # [...]
    // essayé avec les deux, même message d'erreur :
    $args = base64_encode($_POST['login'].':'.$_POST['password']);
    // $args = $_POST['login'].':'.$_POST['password'];
    # [...]
     
    // Création d'une ressource cURL
    $ch = curl_init('https://sitenumero2.com');
    // Définition de l'URL et autres options appropriées
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, false);
    curl_setopt($ch, CURLOPT_AUTOREFERER, 'Location:');
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
    curl_setopt($ch, CURLOPT_FRESH_CONNECT, true);
    curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
    curl_setopt($ch, CURLOPT_USERPWD, $args);
     
    // Récupération de l'URL et passage au navigateur
    if(curl_exec($ch))
    {
    	echo 'exécutée';
    }
    else
    {
    	echo 'même pas exécutée : ';
    	echo curl_error($ch);
    	echo '<br /><br />';
    	print_r(curl_getinfo($ch));
    }
    // Fermeture de la ressource cURL et libération des ressources systèmes
    curl_close($ch);
     
    # [...]
    ?>
    J'obtiens à l'exécution, avec un mdp et login correct :

    même pas exécutée : SSL certificate problem, verify that the CA cert is OK. Details: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed

    Array ( [url] => https://sitenumero2.com [http_code] => 0 [header_size] => 0 [request_size] => 0 [filetime] => -1 [ssl_verify_result] => 0 [redirect_count] => 0 [total_time] => 0 [namelookup_time] => 0 [connect_time] => 0.417 [pretransfer_time] => 0 [size_upload] => 0 [size_download] => 0 [speed_download] => 0 [speed_upload] => 0 [download_content_length] => 0 [upload_content_length] => 0 [starttransfer_time] => 0 [redirect_time] => 0 )
    Je pense qu'avec quelques informations en plus sur le SSL (que devrait me fournir le webmaster du 2ème site), je pourrais entrer les paramètres manquants.

    Est ce que j'introduis une faille de sécurité si je fais cela ?

    A suivre...

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 45
    Par défaut
    Non !

    J'y suis parvenu, mais avec ça je copie le contenu des pages de mon serveur 2 (sécurisé SSL) vers mon serveur 1, et ce n'est pas ce que je veux !

    Est ce possible de lancer depuis le php d'un serveur 1 une connexion sécurisé entre mon client et un serveur 2 ?

    Proxys ?
    Headers ?


  4. #4
    Rédacteur
    Avatar de marcha
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2003
    Messages
    1 571
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 571
    Par défaut
    Salut,

    Regarde ce post qui pourra peut-être t'aider.

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 45
    Par défaut
    Salut,

    Merci marcha, mais je ne pourrais pas mettre en place une telle solution, je ne peux pas (pour le moment...) poser de scripts sur le serveur B.

    N'est-il pas possible d'envoyer au navigateur du client une page avec un refresh sur l'adresse du deuxième serveur et un script (Javascript ?) spécifiant l'entête-requête à envoyer à ce serveur ?

    Je vais voir ça sur les forums Javascript.

    Bien entendu pour sécuriser cela je mettrai en place une autre connexion SSL entre mon premier serveur et le client (sans quoi les entêtes voyageront en clair)...

    En cas de succès, je vous tiens au courant !

    Colin

  6. #6
    Rédacteur
    Avatar de marcha
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2003
    Messages
    1 571
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 571
    Par défaut
    Salut,

    A ma connaissance il n'est pas possible de faire ça avec une authentification
    apache sans utiliser cette notation http://user:password@host qui n'est pas
    totalement compatible. (Tu pourrais gérer une forme de cryptage coté javascript,
    mais pas très safe)

    L'autre solution serait de faire un proxy complet sur ton serveur non sécurisé
    qui irait chercher les ressources avec Curl sur le serveur sécurisé. Mais ça ne
    me semble non plus pas une bonne solution.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Web Service] Php, SOAP et connexion sécurisé ssl
    Par piaichpi dans le forum Bibliothèques et frameworks
    Réponses: 3
    Dernier message: 25/02/2011, 16h36
  2. Probleme avec formulaires php sur le site distant
    Par Lionel_aw dans le forum Langage
    Réponses: 2
    Dernier message: 26/03/2010, 16h16
  3. Réponses: 3
    Dernier message: 24/10/2009, 18h46
  4. Réponses: 32
    Dernier message: 29/09/2009, 11h10
  5. [MySQL] aide pour connection mysql avec du php sur mon site web
    Par cuisto44000 dans le forum PHP & Base de données
    Réponses: 9
    Dernier message: 23/09/2007, 00h30

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