Sécurité PHP : Votre avis svp ?

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Sécurité PHP : Votre avis svp ?

par graal » 19 août 2005, 20:35

Faire autrement qu'en VARCHAR ?
Tout simplement en INT ;)

par Daviwys » 18 août 2005, 23:36

Merci beaucoup pour cette explication et l'exemple !

On peut pas faire mieux je pense lol

Génial !!

par Cyrano » 18 août 2005, 23:23

Exemple d'utilisation de ta fonction:
<?php
// On définit une fonction ajout_slashes()
function ajout_slashes($str)
{
    return !get_magic_quotes_gpc()?addslashes($str):$str;
}

// on définit une variable quelconque
$variable = "L'arbre qui cache l'autre foret";

// On affiche la variable une première fois;
echo("<p>". $variable ."</p>\n");

// On modifie la variable en faisant appel à la fonction:
$variable = ajout_slashes($variable);

// On affiche à nouveau la variable :
echo("<p>". $variable ."</p>\n");
?>
Exécute ça et observe : tu obtiens :
.
L'arbre qui cache l'autre foret

L\'arbre qui cache l\'autre foret

par Daviwys » 18 août 2005, 23:15

Salut graal :wink:
Déja faire un strip_tags sur un md5 ...
Opte plutot pour l'inverse quoi [:
J'ai corrigé :wink:
Je me demande bien quel type de champs tu as utiliser pour stocker les adresses ip :-°
Actuellement, en (varchar) mais ta suggestion est bien meilleur ! Mais d'après cette page : http://www.dicofr.com/cgi-bin/n.pl/dico ... 0101002733 d'ici l'an 2010 tout Internet devrait avoir migré sur IPv6.
A ta place j'aurais utilisé ip2long et stocké dans un champ int.
Et comme "ip2long" ne s'utilise qu'avec du IPv4, je me demande comment faire autrement qu'en "varchar" ?

Pour infos, je défini $idSession de la façon suivante :
<?php
...
$idSession=session_id();
...
?>
Quant à ta fonction, c'est sympa de ta part mais je ne comprends pas trop les "fonctions" et la façon de les utiliser ? Peux-tu m'expliquer ?
<?php
function add_slashes($str)
{
return !get_magic_quotes_gpc()?addslashes($str):$str;
}
?>
Merci.

par graal » 18 août 2005, 20:51

Déja faire un strip_tags sur un md5 ...
Opte plutot pour l'inverse quoi [:

Je me demande bien quel type de champs tu as utiliser pour stocker les adresses ip :-°
A ta place j'aurais utilisé ip2long et stocké dans un champ int.

Si tes vars (exceptés l'ip, non passée sous ip2long) sont des ints, il est plus intelligent de faire :
<?php
$req_acces=mysql_query("SELECT iduser,ipuser,idsession FROM membres WHERE iduser=".(int)$_SESSION['user_id']." AND ipuser='".$_SERVER['REMOTE_ADDR']."' AND idsession=".(int)$_SESSION['sess_id'],$idconnect); 
?>
Sinon apparemment y a pas de problème, si ton magic_quotes est à on.
J'aurais quand même par précaution pris le soind e passer sous le addslashes ou le htmlentities + ENT_QUOTES (à la place d'un strip_tags un peu dérisoire).

Au passage :
<?php
function add_slashes($str)
{
return !get_magic_quotes_gpc()?addslashes($str):$str;
}
?>

Sécurité PHP : Votre avis svp ?

par Daviwys » 18 août 2005, 19:09

Bonjour à tous,

J'aimerais avoir votre avis sur la sécurité d'une page en utilisant php et une bd de la façon suivante s'il vous plaît :
<?php
...
$req_acces=mysql_query("SELECT iduser,ipuser,idsession FROM membres WHERE iduser='".$_SESSION['user_id']."' AND ipuser='".$_SERVER['REMOTE_ADDR']."' AND idsession='".$_SESSION['sess_id']."'",$idconnect);
$cpt_acces=mysql_num_rows($req_acces);
if($cpt_acces!=1) {//Si le visiteur n'a pas les mêmes ip, id et idsession que lorsqu'il s'est connecté. Je le redirige vers...
	header("Location:../index.php");//... l'accueil du site !
	exit();
	} else {// Sinon j'affiche la page.
	// Bienvenue cher membre, bla bla bla...
	}
?>
Infos complémentaires : Lorsque le membre d'identifie, je récupère ses login et mot de passe de cette façon :
<?php
...
$pseudo=strip_tags($_POST['pseudo']);
$mdp=md5(strip_tags($_POST['mdp']));
...
?>
Merci d'avance :wink: