Soucis qd on se logue sur mon site

sameva
Messages postés
3
Date d'inscription
dimanche 30 septembre 2012
Statut
Membre
Dernière intervention
23 mars 2017
- 23 mars 2017 à 16:56
 sameva - 1 avril 2017 à 19:00
Bonjour,
J'ai un site fait en php avec mysql et c...
Depuis quelques jours je m'aperçois que pour se loguer dessus, dans la case mot de passe, il y a ce message qui se met en popups:
"cette connexion n'est pas sécurisée.Les identifiants saisis ici pourraient être compromis."
De plus dans la barre d'adresse (sous Firefox notamment)
a gauche de l'adresse est apparu un cadenas barré de rouge avec le même message.
Ce que je n'avais pas il y a un mois en gros.
Que dois je faire afin que les membres puissent "se sentir en sécurité" tout en sachant que mon site est ouvert a tout public (site pointant sur un serveur de tchat hébergé chez OVH).
merci d'une réponse si quelqu’un connait une solution simple :)

3 réponses

jordane45
Messages postés
35415
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
16 mai 2022
356
23 mars 2017 à 17:21
Bonjour,

https://blog.doyousoft.com/sites-non-securises-firefox-ajoute-une-alerte-sur-les-formulaires/

Ce message apparait dans les formulaire d'authentification ( donc dans des balises <form et sur les champs input de type password )
Pour contourner ça... tu peux gérer ton authentification en AJAX au lieu de le faire via un "submit" de formulaire html
0
sameva
Messages postés
3
Date d'inscription
dimanche 30 septembre 2012
Statut
Membre
Dernière intervention
23 mars 2017

23 mars 2017 à 22:28
Bonsoir
merci de ta réponse mais AJAX et moi c'est monsieur propre :)
Je connais vraiment pas ...
Après faut que ça rentre en mysql aussi
pf pff

0
jordane45
Messages postés
35415
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
16 mai 2022
356
Modifié le 24 mars 2017 à 01:21
Après faut que ça rentre en mysql aussi

L'ajax c'est :
Un script Javascript .. qui appel une page PHP ... page php qui interragit avec la base de données !

Tu peux le faire en "pur" javascript, via XMLHTTPREQUEST ... mais je te conseille vivement d'utiliser la librairie JQUERY

Commence par télécharger ( enregistrer/sous ) le fichier : https://code.jquery.com/jquery-3.2.0.min.js

Inclus le dans ton site
<script src="jquery-3.2.0.min.js"></script>


Puis, dans ta page de login:
<form>
<input type="text" id="login" placeholder="login">
<input type="password" id="pwd" placeholder="password">
<button onclick="valider();">OK</button>
</form>

<script type="text/javascript">
function valider(){
  var login = $("#login").val();
  var pwd = $("#pwd").val();
  
  var datas = {login:login,pwd:pwd};
  
  $.ajax({ 
      type: "POST",
      url: "connexion.ajx.php",
      data: data,
      async: false,
      dataType: "json",
      success: function(reponse){
        //si connexion ok...
        //par exemple :
        if(reponse.connexion == true){
          alert("connexion ok !");
        }else{
           alert(reponse.error);
         }
       },
      error:function(jqXHR, textStatus){
        alert('error :' + jqXHR.responseText);      
     });
}

</script>

tu créés un fichier php : connexion.ajx.php


<?php
//fichier connexion.ajx.php

//démarrage des sessions
session_start();

//connexion à la BDD
//ici tu inclus le code de connexion à la bdd.. par exemple :
require_once "cnxBdd.php";



//récupération des variables POST
$login = !empty($_POST['login']) ? $_POST['login'] : NULL;
$pass = !empty($_POST['pwd']) ? $_POST['pwd'] : NULL;


//si login et password sont renseingés :
if($login && $pwd){
   //ici tu code ta connexion au site via tes requêtes ...
   // ...
   
   //exemple en PDO :
   $sql = " SELECT id,login,pass 
            FROM tatableuser
            WHERE login = :login";
   $datas = array(":login"=>$login);
   try{
      $prep = $bdd->prepare($sql);
      $prep->execute($datas);
      $row = $prep->fetch(PDO::FETCH_ASSOC);
      
       if (password_verify($pass, $row['pass'])) {
         $_SESSION['id_user'] = $row['id'];
         //...etc...
       }
      
   }catch(Exception $e){
    $result['connexion'] = false; 
    $result['error'] = $e->getMessage();      
   }
     
  $result['connexion'] = true; 
  $result['error'] = false;  
}else{
   $result['connexion'] = false; 
   $result['error'] = "Login et/ou password vide(s)";    
}

echo json_encode($result);

?>

0
Profil bloqué
28 mars 2017 à 17:02
Bon moyen de contourner le problème. Mais c'est effectivement comme ça que l'on compromet la sécurité des données.
Je n'ai pas de détails sur le projet. Ce message sur firefox apparaît lorsque le domaine n'est pas sécurisé avec un certificat SSL ou TLS.

De plus le message de sécurité apparaît à chaque input type="password"

Il faut trouver un autre moyen de saisir les mot de passe (clavier virtuel, mot de passe temporaire par mail ou SMS, Captcha ...)
0
sameva > Profil bloqué
1 avril 2017 à 19:00
Bonjour
je reviens en retard . car j’étais absent.
Ok je vais tester ce que tu me proposes jordane45, en faisant une page test afin de controler le bon appel de la mysql.

En réponse a CecilCordheley, oui surement mais pour un site avec 500 inscrits, je vois mal comment les utilisateurs pourraient se "loguer" via sms ou captcha (sans avoir rentré son password et login)

je repasserai dès que possible pour voir si la modif fonctionne, mais on pourrait aussi peut être appeler en input type="password" par un autre nom que password ...?
Je vais tester dès que je peux afin de voir comment ça réagit
Merci
0