Sécuriser un site

Répondre
maxroucool
le 21/12/2005 à 11:52
maxroucool
Slt tlm,

je me demandais comment securiser un site internet des injections SQL ou autres formes de Hacking.

J'ai une petite fonction que j'applique a toutes mes données avant d'etre introduites dans ma DB, mais je pense pas que ca me protege des injections.
<?
function verifcode($text) {

$text = htmlentities($text, ENT_NOQUOTES);
$text = trim($text);
$text = nl2br($text);

return $text;
}
?>


Merci bp!
+++
LA GLOBULE
le 21/12/2005 à 11:55
LA GLOBULE
Moi je te conseille le htmlentities et le nl2br à l affichage et non avant l'insert en base.

Ensuite, pour la sécurité, c'est simple, faut prevoir tout ce que pourra faire l'utilisateur, donc utilisation de mysql_escape_string, test des saisies de champs avec expressions régulières, tout çà...
zebden
le 21/12/2005 à 11:55
zebden
En effet,

Alors déjà petit conseil, htmlentities et nl2br, utilise les oui mais seulement à l'affichage.

Pour les injections SQL, il existe une fonction qui est mysql_real_escape_string. Et dans la doc tu trouveras une fonction pour ne pas prendre en compte magic_quote qui lui utilise addslashes().
zebdinou pour les intimes / Blog : http://www.zebden.fr
zebden
le 21/12/2005 à 11:55
zebden
Han. la old school en piste ^^
zebdinou pour les intimes / Blog : http://www.zebden.fr
maxroucool
le 21/12/2005 à 13:00
maxroucool
OK donc il faut que j'applique la methode expliquée dans cette page http://www.lephpfacile.com/manual_php/function.mysql-real-escape-string.php a xhaque fois que je veux inserer quelque chose dans ma DB.

J'avais penssé a autre chose, je sais pas si c'est bien ou pas, c'est de verifier que chaque donnée avec une expression réguliere:

Pour un $_GET[id] par exemple faire ceci:

if(!ereg("^[0-9]$",$$_GET[id])){ 
echo "ceci n'est pas un ID valide";
exit();
}


Je sais que c'est contraignant, mais qu'est ce que vous en pensé?

Merci bp!
maxroucool
le 21/12/2005 à 13:01
maxroucool
et au fait, pourquoi vous me conseillez d'utiliser htmlentities et le nl2br a l'affichage et non a l'insertion?
manu56
le 21/12/2005 à 13:06
manu56
Salut, car c'est si tu veux "manipuler" tes donnés en sortie de bdd, tu auras moins de difficulté a le faire sur des données brutes.

Sinon pour vérifier que l'id est valide, moi j'utilise is_numeric().

@+
Répondre

Ecrire un message

Votre message vient d'être créé avec succès.
LoadingChargement en cours