11486 sujets

JavaScript, DOM et API Web HTML5

salut à tous . j'avoue que ca fait un bout de temps que je suis bloqué sur les sessions en réalité . lorsque je connecte un utilisateur , je dois avoir son pseudo qui s'affiche . mais au lieu de ca , c'est le mot de passe qui s'affiche . sil vous plait aider moi. je vous remercie.

voici ma page login.php:



<?php
session_start();
//Connexion à la base de données
//(via PDO, utilisez la méthode de votre choix comme le type de base de données de votre choix)
$pdo = new PDO('mysql:host=localhost;dbname=occupation', 'root', '');

//Nous vérifions que l'utilisateur a bien envoyé les informations demandées
if(isset($_POST["username"]) && isset($_POST["password"])){
//Nous allons demander le hash pour cet utilisateur à notre base de données :
$query = $pdo->prepare('SELECT password FROM users WHERE username = :username');
$query->bindParam(':username', $_POST["username"]);
$query->execute();
$result = $query->fetch();
$hash = $result[0];


//Nous vérifions si le mot de passe utilisé correspond bien à ce hash à l'aide de password_verify :
$correctPassword = password_verify($_POST["password"], $hash);

//$correctUsername = password_verify($_POST["username"], $hash);

if($correctPassword){
//Si oui nous accueillons l'utilisateur identifié
//echo "Bienvenu ".$_POST["username"];
header('Location: vue.php');
$_SESSION['nom'] = $result[0];
//var_dump($_SESSION['nom']);
exit();
}else{
?>
<script language="JavaScript">
alert("Mauvais Identifiant et/ou mot de passe !");
window.location.replace("index.php");// On inclut la page d'identification
</script>

<?php
}
}

?>

?>
Tu as une politique de sécurité complètement inconsciente !!!!
* Tu fais une confiance absolue dans les visiteurs de ton site qui te postent un formulaires. Si c'est un site pour les bisounours c'est parfait, tu n'auras pas forcé pour rien. Sinon attends toi à une attaque de vilains hackers qui se feront un plaisir de tester différentes injections de code. On filtre systématiquement les données issues d'un formulaire. Il y a des fonctions en PHP qui font cela très bien:
http://php.net/manual/en/function.filter-input.php
* La plus grave faute : on ne stocke jamais en clair les mots de passe ! Quand un utilisateur s'inscrit sur ton site avec login et passwd, on s'empresse de crypter son passwd et on stocke le résultat dans une base de données ou dans un fichier de texte comme fait Apache. A chaque fois qu'un utilisateur tentera de se connecter on crypte le passwd qu'il propose et on compare son résultat avec le résultat précèdent stocké dans la base de données ou le fichier de texte. Je me demande ce q'ils en pensent à la CNIL et nos amis juristes.
* tu vas chercher dans la base de données tous les passwd pour un login donné. Tu ferais mieux de compter avec un bête "select count(*)" les utilisateurs pour un login et un passwd donné, enfin sous sa forme crypté. Au moins tu seras sûr de ne pas afficher le passwd. 3 résultats possibles :
- 0 : utilisateur inconnu, vire le !
- 1 : c'est parfait, utilisateur authentifié
- supérieur à 1 : abandonne immédiatement l'informatique et cours acheter un billet de loterie. Ça doit être bon au prochain tirage
* "root" comme nom d'utilisateur de ta base de données, tu pourrais faire un effort d'imagination. Tu lui as donné tous les super pouvoirs ? Et un passwd à "", c'est juste pour rigoler ?

Quand je vois qu'on te corrige gentiment ton code, je fais des bonds sur ma chaise jusq'au plafond Smiley fache
Modifié par bazooka07 (30 Jun 2018 - 00:12)