Un site dont je m'occupe a été hacké. Des fichiers ont été ajoutés et modifiés sur l'hébergement.
J'ai modifié le code du login qui n'était pas suffisamment protégé mais rebelotte.
Je ne suis pas hyper habitué à traiter les soucis de sécurité, et j'ai du mal à trouver la source de tous mes maux. J'ai installé les plugins XSS-Me pour firefox, et SQL Inject-Me.
Pas de soucis en XSS, et toujours quelques soucis en injection..
Voilà mon code :
Code : Tout sélectionner
<?php
session_start();
//récupération de l'URL de la page de provenance
$prov = $_SERVER['HTTP_REFERER'];
//récupération des variables du formulaire de login
function protection($string){
$string = stripslashes($string);
$string = htmlspecialchars($string);
$string = htmlentities($string);
return $string;
}
$pseudo = protection($_POST['pseudo']);
$pass = protection($_POST['pass']);
function loginUser($loginIn,$passwordIn,$prov) {
$conn = mysqli_connect('----', '----', ------', '-----');
if (!$conn) {
die('Could not connect to MySQL: ' . mysqli_connect_error());
}
//mysqli_query($conn, 'SET NAMES \'utf8\'');
//protection
$loginIn=$conn->real_escape_string($loginIn);
$query='SELECT id_client,pseudo_client,pass_client FROM client WHERE pseudo_client=?';
$stmt=$conn->prepare($query);
if($stmt) {
$stmt->bind_param("s",$loginIn);
$stmt->execute();
$stmt->store_result();
if($stmt->num_rows!=0) {
$stmt->bind_result($id_client,$pseudo_client,$pass_client);
while($stmt->fetch()) {
if($pass_client===md5($passwordIn)) {
$_SESSION['id_client'] = $id_client;
header("Location: ".$prov);exit;}
else {
header("Location: erreurLogin.php"); }
}
}
else {
header("Location: erreurLogin.php");
}
}
}
loginUser($_POST['pseudo'],$_POST['pass'],$prov);
?>