Page 1 sur 1

Comment sécuriser mon script dans index.php?

Posté : 19 sept. 2012, 17:02
par Akernedo
Bonjour!
J'ai créé il y a quelques mois de cela un site pour une société d'informatique. Pour la navigation, j'utilise un script php via des include et un jeu de conditions pour afficher les pages dans une div qui s'appelle, naturellement, "page".
Voici le script qui inclut les documents en question:
<div id='page'>
			<?php
			$choix=$_GET['choix'];
			$accueil='accueil.php';
			$sql="select * from $choix";
			$resultat=mysql_query($sql);
			if(isset($choix)){
			include($choix.".php");
			} else {
			include($accueil);}
			?>
[html]</div>
Les URL se présentent sous la forme monsite/index.php?choix=page

Donc, voilà ce que j'ai. Manque de bol, il y a des attaques incessantes sur le site, qui passeraient par ce script, qui s'appelleraient des attaques par "inclusions de fichiers distants". Sauf que la méthode que j'emploie je la tiens d'un prof qui crée beaucoup de sites web, je la pensais fiable. Comment régler ce problème pour que le site ne soit plus attaqué, ou en tout cas que ces attaques ne soient plus réussies?

Merci d'avance!

Re: Comment sécuriser mon script dans index.php?

Posté : 19 sept. 2012, 17:33
par moogli
salut,

- tu t'exploite pas la requete SQL

il faut toujours vérifier que le fichier existe sur ton serveur

donc utilise un tableau avec les fichiers qui peuvent être inclus et tu vérifie ça.

Je te conseil ce tuto pour corriger ton soucis http://phpdebutant.org/article68.php

Tu devrais aussi utiliser mysql_real_escape_string pour protéger tes requete SQL (plus d'infos dans la doc).


@+

Re: Comment sécuriser mon script dans index.php?

Posté : 19 sept. 2012, 21:52
par Akernedo
J'ai utilisé la méthode décrite dans le lien, ça a marché du tonnerre, on ne voit pas de différence à l'usage! Merci beaucoup!
Pour l'histoire de protéger les requêtes SQL je dois l'avouer, je n'ai pas bité un mot. Mais c'est comme ça qu'on apprend. Tu pourrais m'en dire un peu plus s'il te plait? Je dois avouer que je suis relativement débutant en création de sites web, je n'ai pas les bons réflexes et encore moins toutes les connaissances.

Re: Comment sécuriser mon script dans index.php?

Posté : 19 sept. 2012, 22:01
par moogli
ton code est sensible aux injections SQL.
Ce type de faille permet d'exploiter un, champ de formulaire ou u paramètre d'url pour avoir accès au sgbd.

Par exemple, dans ton code $choix à pour valeur '; delete * from users, tu risque d'avoir un gros souci d'utilisateur ;)


pour éviter cela tu dispose de la fonction mysql_real_escape_string, cela "échappper" les caractère spéciaux comme la quote.

par exemple :
<?php
$sql = 'select * from table where id='.mysql_real_escape_string($id);

@+