Sécurité PHP

Résolu/Fermé
Fetide68 Messages postés 746 Date d'inscription dimanche 4 janvier 2009 Statut Membre Dernière intervention 16 septembre 2024 - 25 nov. 2009 à 10:58
Fetide68 Messages postés 746 Date d'inscription dimanche 4 janvier 2009 Statut Membre Dernière intervention 16 septembre 2024 - 25 nov. 2009 à 17:08
Bon alors, je découvre un peu PHP mais le moment est venu ou, avant d'aller plus loin (donc trop loin), je souhaiterais obtenir les meilleures infos concernant la sécurité du code... !

Le meilleur lien que j'ai trouvé pour l'instant est celui-ci : https://codes-sources.commentcamarche.net/

Mais à chaque chapitre j'ai toujours des doutes... ce n'est pas super clair et les solutions proposées ne marchent même pas.

Par exemple, quelle différence y a-t-il entre ça :
If ($password != "Pouletgrille")  { print'
Exemple : <meta name="robots" content="index, follow"> '; }

et ça :
If($password != "Pouletgrille")  { Print'Insérez ici le contenu de votre section admin'; } else { print'Erreur de connexion !'; }

Son explication n'est pas claire.

ceci :
$page=preg_replace("/[^a-z0-9_ ]/i", "", $page);
if(!@include("includes/$page.php"))die("Cette page n'existe pas sur le serveur, merci d'informer le webmaster du site si ce problème venait à se reproduire.");
ne marche pas.

Et si ça :
<? include ('accueil.php') ?>
est valable pour ça :
Si votre URL est sous la forme suivante : http://www.votresite.com/index.php?page=accueil.php</code>est-ce qu'il est aussi valable pour ça ?
Si votre URL est sous la forme suivante : http://www.votresite.com/index.php?page=accueil</code>


Je trouve que ces explications nous informent mieux de la façon dont procèdent les pirates que de la façon de leur empêcher l'accès. Auriez vous une solution miracle pour débutant... ?

Merci.

8 réponses

avion-f16 Messages postés 19249 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 15 juin 2024 4 505
25 nov. 2009 à 14:16
Essayes plutôt avec ça :
if($password == "Pouletgrille")  {
    echo 'Insérez ici le contenu de votre section admin';
} else {
    echo 'Erreur de connexion !';
}
N'utilises pas les shorts-tags ! C'est "<?php" et pas "<?"

Je te conseil d'aller apprendre sur le Site du Zér0 car l'auteur du tutoriel me fais penser au sois-disant "informaticien" qui donne cours comme des pieds à mon école (avec les vieilles méthodes dépassées).
2
LelLex Messages postés 1628 Date d'inscription mercredi 18 février 2009 Statut Membre Dernière intervention 5 septembre 2012 112
25 nov. 2009 à 14:20
Je suis du même avis !

Le lien dont il parle c'est celui-là :
- https://openclassrooms.com/fr/courses/918836-concevez-votre-site-web-avec-php-et-mysql

Cordialement,

+1
1
Dr Zoidberg Messages postés 529 Date d'inscription jeudi 28 juin 2007 Statut Membre Dernière intervention 12 juin 2015 100
25 nov. 2009 à 14:36
Salut,

Je serais un peu moins 'violents' que vous sur ce tutoriel mais c'est vrai qu'on fait mieux.
L'exemple
If ($password != "Pouletgrille")  { print'
Exemple : <meta name="robots" content="index, follow"> '; }

Explique que faire une protection de page avec une redirection par META n'est pas bien ... c'est vrai mais ca ne me serait pas venu à l'esprit de le faire ainsi :)

Le deuxième exemple explique qu'il ne faut pas faire confiance à une page passée en paramètre. Ne JAMAIS faire un include($page) avec $page provenant d'un GET, il faut maitriser ce qu'on passe en paramètre à include. mais le moyen donné de contourner le problème n'est surement pas le plus compréhensible ni le plus efficace.
0
Fetide68 Messages postés 746 Date d'inscription dimanche 4 janvier 2009 Statut Membre Dernière intervention 16 septembre 2024 32
25 nov. 2009 à 15:18
Quand je disais que je découvre php, cela sous-entendait que LE site qui m'a fait avancé en premier c'est le site du zéro. Vous avez beau le critiquer, j'aime bien la méthode de m@teo. Je n'ai pas vu de meilleur tutoriel pour l'instant.

Pour les shorts tags, je savais, mais j'ai fais un simple copié-collé, pour rester fidèle au texte d'origine. Mais c'est toujours bon de le rappeler pour d'autres.

Merci Dr Zoidberg qui répond à tous mes post (j'ai vu ta participation sur fputs et fwrite... merci....

Pour la redirection, je ne sais pas pourquoi il a mis la meta robots, c'est pas plutôt la meta refresh dont il voulait parler ? Sinon, une redirection en javascript, c'est mieux au cas ou ? Parce que le header ('location: ...'); en php ne fonctionne pas si du code html est placé avant...

Merci pour ta réponse...
0
avion-f16 Messages postés 19249 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 15 juin 2024 4 505
25 nov. 2009 à 16:03
“Vous avez beau le critiquer, j'aime bien la méthode de m@teo. Je n'ai pas vu de meilleur tutoriel pour l'instant.”Je parlais de l'auteur du tutoriel sur phpcs.com, pas de m@theo21 du SdZ.

Le mieux est de faire la redirection en PHP avec la fonction header :
header('Location: nouvelle_page.php');
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Dr Zoidberg Messages postés 529 Date d'inscription jeudi 28 juin 2007 Statut Membre Dernière intervention 12 juin 2015 100
25 nov. 2009 à 15:27
En javascript c'est pas franchement mieux car le javascript se fait coté client (comme le meta refresh) et on ne maitrise donc pas ce que le client fait (le javascript ca se désactive par exemple). Mais ca dépend de l'utilisation, ici on parle d'une redirection sur une validation de mot de passe, la bonne solution pour une authentification reste pour moi un système de session et une page d'erreur appelé par une header('Location:...);.
Rien n'empêche d'utiliser une redirection javascript ou meta pour des choses moins critiques.
0
Fetide68 Messages postés 746 Date d'inscription dimanche 4 janvier 2009 Statut Membre Dernière intervention 16 septembre 2024 32
25 nov. 2009 à 15:50
Ok, c'est noté ! Merci.
0
LelLex Messages postés 1628 Date d'inscription mercredi 18 février 2009 Statut Membre Dernière intervention 5 septembre 2012 112
25 nov. 2009 à 16:08
De même pour moi, d'ailleurs j'ai mis le lien pour le Site du Zero !
0
Fetide68 Messages postés 746 Date d'inscription dimanche 4 janvier 2009 Statut Membre Dernière intervention 16 septembre 2024 32
25 nov. 2009 à 17:08
Le cours de Comment ça marche sur Php est pas mal aussi. Un complément synthétique qui est bien utile. Mais beaucoup mois complet que le cours de M@teo...

D'ailleurs, je me suis arrêté aux trois quarts pour apprendre à bien maîtriser ce que j'ai lu et fait... C'est une bonne méthode je pense.

D'ailleurs, REreprendre les bases m'ont permis de clarifier des choses sur lesquels je blouqais et qui maintenant me semblent naturelles et évidentes.
0