Protection de mon hyper-lien

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 : Protection de mon hyper-lien

par Truc » 26 sept. 2006, 19:46

Je n'était pas repassé par là, et j'ai retrouver mon petit fichier texte avec l'adresse de cette page par hazard
Et les favoris alors :wink:
Et sinon l'inscription qui ne coute rien et tu serais averti par mail lors d'une réponse.

par TiEuAM » 26 sept. 2006, 18:04

Je n'était pas repassé par là, et j'ai retrouver mon petit fichier texte avec l'adresse de cette page par hazard, et je vous dit un grand merci pour cette réponse.

Je n'est tjrs pas fait mon systeme pour la création de page entiere sur ma plate-forme, et j'allai justement m'y attardé, encore merci...

par nicolas » 20 juil. 2006, 22:07

if ( (isset($_GET['page'])) && (array_key_exists($_GET['page'], $pages)) ) 
{ 
ou en beaucoup lus imple:
if ( (isset($_GET['page'])) && isset($pages[$_GET['page']]))
{ 

par Truc » 20 juil. 2006, 20:50

$pages = array(
'index' => 'index.php',
'chat' => 'chat.php',
'secret' => 'secret/index.php'
);

Mais comment faire pour que les element de l'array soit dynamique, crée a partir d'une BDD par exemple.

Merci
Suffit de boucler sur le résultat de la requête et de récupérer une valeur pour l'index (champ index) et une pour le chemin (champ chemin):
$pages = array();
boucle($data=...)
{
      $pages[$data['index']]=$data['chemin'];
}
Je débarque un peu, mais ça ne serait pas plus facile / efficace d'utiliser un switch - case en php ?
Chacun sa manière de faire le tableau évite de tout étaler sur 200 lignes on retrouve beaucoup plus facilement les pages de redirection possibles.

par LKL » 20 juil. 2006, 16:20

Je débarque un peu, mais ça ne serait pas plus facile / efficace d'utiliser un switch - case en php ?

par TiEuAM » 12 juil. 2006, 16:18

$pages = array(
'index' => 'index.php',
'chat' => 'chat.php',
'secret' => 'secret/index.php'
);

Mais comment faire pour que les element de l'array soit dynamique, crée a partir d'une BDD par exemple.

Merci

par max1 » 15 avr. 2006, 12:17

Ok merci beaucoup a tout les deux :wink: et vive PhpFrance :D

par mario » 15 avr. 2006, 10:37

petite correction du code + ajout d'un contrôle d'index pour le tableau

<?php 

$pages = array( 
   'index'  => 'index.php', 
   'chat'   => 'chat.php', 
   'secret' => 'secret/index.php' 
); 

if ( (isset($_GET['page'])) && (array_key_exists($_GET['page'], $pages)) ) 
{ 
   $fichier = $pages[$_GET['page']]; 
} 
else 
{ 
   $fichier = 'accueil.php'; 
} 

include('./' . $fichier); 

?> 
:?: http://fr.php.net/manual/fr/function.ar ... exists.php

par max1 » 15 avr. 2006, 10:18

Bonjour Hubert Roksor :wink: et merci !

Hum j'ai un petit problème a la fin du
if (isset($_GET['page'], $pages[$_GET['page'])) 
syntax error, unexpected ')', expecting ']'

par Hubert Roksor » 14 avr. 2006, 23:44

Il faut simplement que tu n'utilises pas ce qu'entre l'utilisateur pour construire le chemin du fichier. À la place, essaie quelque chose comme:
<?php

$pages = array(
   'index'  => 'index.php',
   'chat'   => 'chat.php',
   'secret' => 'secret/index.php'
);

if (isset($_GET['page'], $pages[$_GET['page']))
{
   $fichier = $pages[$_GET['page']];
}
else
{
   $fichier = 'accueil.php';
}

include('./' . $fichier);

?>

par max1 » 14 avr. 2006, 19:46

Hum après vérification j'ai toujours des failles comme par exemple :
index.php?nav=%3Cb%3E 
ou
index.php?nav=../ 
La on peu acceder :cry:

merci de votre aide :!:

par max1 » 14 avr. 2006, 19:19

Bonsoir Mario et merci pour ta réponse aussi rapide :wink:
Vais regarder pour la fonction file_exists() et aussi m'enregistrer sur le forum car en invité ça le fait pas :oops:

Re: Protection de mon iper lien

par mario » 14 avr. 2006, 18:50

<?php
if ( (isset($_GET['nav'])) && (isset($_GET['page'])) ){
   include ("navig/".$_GET['nav']."/".$_GET['page'].".php") ;
} 
elseif ( (isset($_GET['nav'])) && (!isset($_GET['page'])) ){
   include ("navig/".$_GET['nav']."/index.php") ;
} 
else 
{
   include ("accueil.php") ;
}
?>
<?php est préférable à <? en début de code
pour plus de sécurité, tu peux vérifier si la page existe avec la fonction file_exists()

Protection de mon hyper-lien

par max1_ » 14 avr. 2006, 18:41

Bonjour a tous :D

Voila j'ai fait un petit code en php pour appelez des pages dans un autre dossier, mais je crois et j'en suis sur que mon code n'est pas sécuriser !

Pouvez voir s'il y a bien une faille ?

"><? 
/*if (!isset($_GET['page'])) {
include("accueil.php");
} else {
include($_GET['page'].".php");
}*/

if (isset($_GET['page'])) {
include ("navig/".$_GET['nav']."/".$_GET['page'].".php") ;
} elseif (isset($_GET['nav'])) {
include ("navig/".$_GET['nav']."/index.php") ;
} else {
include ("accueil.php") ;
}
?>
Merci de votre aide :wink: