Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1388 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Securiser son site PHP

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Securiser son site PHP

n°325889
benwar
Posté le 07-03-2003 à 12:31:38  profilanswer
 

Salut je cherche a sécuriser mon site php.
 
J'interoge ma table article (par exemple) avec un requette sql
 


$sql = "SELECT titre FROM $table WHERE id='$id'";
$req = mysql_query($sql) or die('page non disponible !<br>'.$sql.'<br>'.mysql_error());
 
$titre = mysql_result($req,titre);
 
echo "$titre :";
 


 
je recupaire $id par :

$id=$_GET["id"];


 
le probleme est que si un mec modifie l'url exemple : http://www.monsite.com/index.php?i [...] 7987987987
et que l'id 5665465654654897987987987 n'existe pas dans ma table article je v avoir une belle erreur du style :  
 

Warning: mysql_result() [function.mysql-result]: Unable to jump to row 0 on MySQL result index 18 in /home/tutu/www/toto/index.php on line 279


 
Voila et je voudrais ne pas afficher ce message mais afficher par exemple "page non dispo" et meme en modifien mon code par :

$req = mysql_query($sql) or die('page non disponible !');


Le message est toujours là !
 
J'ai le l'article sur la sécu de Nexen mais j'ai pas vraiment compris.
 
Voila.
 
 

mood
Publicité
Posté le 07-03-2003 à 12:31:38  profilanswer
 

n°325921
Core 666
Posté le 07-03-2003 à 13:07:43  profilanswer
 

Tu peux utiliser plusieurs méthodes pour ca, dont :
 

if (mysql_num_rows($req) == 0) die('page non disponible !');

n°325952
gizmo
Posté le 07-03-2003 à 13:47:17  profilanswer
 

@ est ton ami ;)

n°325966
benwar
Posté le 07-03-2003 à 13:58:52  profilanswer
 

gizmo a écrit :

@ est ton ami ;)


 
 
??  :heink:

n°325967
Hermes le ​Messager
Breton Quiétiste
Posté le 07-03-2003 à 13:58:58  profilanswer
 

benwar a écrit :

Salut je cherche a sécuriser mon site php.
 
J'interoge ma table article (par exemple) avec un requette sql
 


$sql = "SELECT titre FROM $table WHERE id='$id'";
$req = mysql_query($sql) or die('page non disponible !<br>'.$sql.'<br>'.mysql_error());
 
$titre = mysql_result($req,titre);
 
echo "$titre :";
 


 
je recupaire $id par :

$id=$_GET["id"];


 
le probleme est que si un mec modifie l'url exemple : http://www.monsite.com/index.php?i [...] 7987987987
et que l'id 5665465654654897987987987 n'existe pas dans ma table article je v avoir une belle erreur du style :

 

Warning: mysql_result() [function.mysql-result]: Unable to jump to row 0 on MySQL result index 18 in /home/tutu/www/toto/index.php on line 279


 
Voila et je voudrais ne pas afficher ce message mais afficher par exemple "page non dispo" et meme en modifien mon code par :

$req = mysql_query($sql) or die('page non disponible !');


Le message est toujours là !
 
J'ai le l'article sur la sécu de Nexen mais j'ai pas vraiment compris.
 
Voila.
 
 
 


 
Ben tu testes ta variable AVANT de lancer la requête. Je vois pas où est le problème.  :heink:

n°326111
MagicBuzz
Posté le 07-03-2003 à 15:56:33  profilanswer
 

Pas pas moyen de bosser plutôt avec des variables en POST plutôt qu'en GET :heink:
 
Parceque GET + Sécurité, je demande à voir...
 
Déjà en POST on est jamais certain que le gars bidouille pas les entêtes HTTP de son navigateur, mais alors en GET...

n°326113
MagicBuzz
Posté le 07-03-2003 à 15:57:27  profilanswer
 

Pour info, avec ce genre de conneries, j'ai un pote qui s'est acheté 5 XBox et 5 PS2 chez alapage pour la modique somme de 5 ?.


Message édité par MagicBuzz le 07-03-2003 à 15:57:50
n°326162
gizmo
Posté le 07-03-2003 à 16:35:26  profilanswer
 

benwar a écrit :


 
 
??  :heink:  


 
ca masque les message d'erreur.

n°326175
Notsukaw
Be Aware
Posté le 07-03-2003 à 16:49:16  profilanswer
 

MagicBuzz a écrit :

Pour info, avec ce genre de conneries, j'ai un pote qui s'est acheté 5 XBox et 5 PS2 chez alapage pour la modique somme de 5 ?.

:heink:


---------------
[ Canon EOS 30D ] (Grip + Canon 50mm f/1.4 + Canon 18-55mm USM + Tamron 70-300mm Di LD Macro)  [Galerie perso]
n°329686
MagicBuzz
Posté le 11-03-2003 à 17:01:05  profilanswer
 


Ben quand tu passes comme un crétin les informations d'un formulaire en querystring, y'a rien de plus simple que d'éditer cette dernière en foutant ce que tu veux. Sur certains sites codés comme des merdes, tu peux ainsi changer le montant de la transaction bancaire au moment du paiement par carte bleue.
 
Ainsi un pote a juste viré les deux derniers chiffres du montant de sa commande et a commandé pour 5 ? une facture de plus de 500 ?.
 
La transaction bancaire étant contractuelle, le propriétaire du site web n'a aucun recours face à cette pratique.
 
Alors quand je vois des sites passer en querystring des infos importantes, je ne peux m'empêcher de mouiller mon jean.


Message édité par MagicBuzz le 11-03-2003 à 17:01:44
mood
Publicité
Posté le 11-03-2003 à 17:01:05  profilanswer
 

n°329716
Mara's dad
Yes I can !
Posté le 11-03-2003 à 17:24:49  profilanswer
 

D'accord à 100% avec MagicBuzz !
 
Le truc à avoir en tête quand on cherche sécuriser un site, c'est de ne faire aucune confiance à TOUT ce qui vient du client. Que se soit en GET, en POST ou même par Cookie.
 
Une des solution que j'essaye de mettre en place pour un site sur lequel je bosse se résume ainsi.
 
D'abord, utiliser les sessions.
 
Toute requête HTTP n'ayant pas un ID de session valide est renvoyé vers la page d'accueil.
 
Ensuite, toutes les infos reçues du client sont vérifiées.
 
1- Suivant leur type. Par exemple, si j'attend une date, je vérifie qu'elle est valide, et éventuellement dans une plage acceptable.
 
2- Pour les chaînes, tous les caractères dangeureux sont "échapés".
 
3- Si j'attend un id, comme dans ton exemple, il vient sans doute d'une liste que je lui ai proposé. Cette liste est conservé dans un "contexte" en session. L'id reçu est alors comparé à ceux envoyés, et s'il ne fait pas partie de la liste, ben la sanction dépend de mon humeur :D
 


---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
n°329719
Master_Jul
Posté le 11-03-2003 à 17:31:15  profilanswer
 

MagicBuzz a écrit :

Pour info, avec ce genre de conneries, j'ai un pote qui s'est acheté 5 XBox et 5 PS2 chez alapage pour la modique somme de 5 ?.


 
et ils marchent toujours comme ça ? (:D)


Message édité par Master_Jul le 11-03-2003 à 17:32:46
n°329727
MagicBuzz
Posté le 11-03-2003 à 17:39:43  profilanswer
 

Certains son corrigés, (notamment celui du coup des consoles à 5 ? ;) )
 
Mais d'autres doivent certainement toujours avoir ce genre de trucs.

n°329886
Notsukaw
Be Aware
Posté le 11-03-2003 à 20:27:57  profilanswer
 

MagicBuzz a écrit :


Ben quand tu passes comme un crétin les informations d'un formulaire en querystring, y'a rien de plus simple que d'éditer cette dernière en foutant ce que tu veux. Sur certains sites codés comme des merdes, tu peux ainsi changer le montant de la transaction bancaire au moment du paiement par carte bleue.
 
Ainsi un pote a juste viré les deux derniers chiffres du montant de sa commande et a commandé pour 5 ? une facture de plus de 500 ?.
 
La transaction bancaire étant contractuelle, le propriétaire du site web n'a aucun recours face à cette pratique.
 
Alors quand je vois des sites passer en querystring des infos importantes, je ne peux m'empêcher de mouiller mon jean.


 
Ouep ça je sais bien que techniquement y'a pas de prob, ce qui m'étonne c'est juste qu'il y ait aucun contrôle comptable derrière quoi  :??:


---------------
[ Canon EOS 30D ] (Grip + Canon 50mm f/1.4 + Canon 18-55mm USM + Tamron 70-300mm Di LD Macro)  [Galerie perso]
n°330027
MagicBuzz
Posté le 11-03-2003 à 22:40:37  profilanswer
 

ben quand on est assez goret pour faire passer un montant de facture en querystring, on est généralement assez goret pour rien tester à l'arrivée ;)
 
c comme quand je fais un bug... quitte à planter, autant faire un kernel panic, sinon c'est pas la peine :sarcastic: :D


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Securiser son site PHP

 

Sujets relatifs
Creer un script permettant d'afficher ses news sur un autre site[PHP] Variable dans variable
Un nouveau projet PHP en developpement[PHP] Problème d'un script PHP qui ne s'éxécute pas comme il faut
[PHP] Mettre du PHP dans des pages HTML ?Probleme avec PHP-Nuke
PHP orienté objet: Class Caddie, pb : arrive pas a afficher l'objet[MOZILLA] Site Navigation bar
Comment activer les commandes MySQL sous PHP (Linux)Php/javascript : problème de passage de paramètre par URL
Plus de sujets relatifs à : Securiser son site PHP


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR