Sécurité site web. Injection SQL...
Fermé
OConell
Messages postés
139
Date d'inscription
samedi 1 novembre 2008
Statut
Membre
Dernière intervention
13 octobre 2010
-
19 janv. 2010 à 14:48
arthezius Messages postés 3538 Date d'inscription jeudi 15 mai 2008 Statut Membre Dernière intervention 11 septembre 2016 - 19 janv. 2010 à 16:09
arthezius Messages postés 3538 Date d'inscription jeudi 15 mai 2008 Statut Membre Dernière intervention 11 septembre 2016 - 19 janv. 2010 à 16:09
A voir également:
- Sécurité site web. Injection SQL...
- Site de telechargement - Accueil - Outils
- Site comme coco - Accueil - Réseaux sociaux
- Web office - Guide
- Création site web - Guide
- Quel site remplace coco - Accueil - Réseaux sociaux
4 réponses
Moyjin
Messages postés
126
Date d'inscription
mardi 19 janvier 2010
Statut
Membre
Dernière intervention
2 février 2011
10
19 janv. 2010 à 14:59
19 janv. 2010 à 14:59
si tu veux pas que ca ce voit dans la barres d'adresse utilise $_post plutot que $_get
si le get correspond a un nom de page ( comme le site sans base de données que je suis entrain de faire ) ya juste a verrifier si la page existe sinon afficher une page par défaut
ensuite si l'admin est bien proteger par un mot de passe il n'y aura pas de souci enfin je pense
Petite note perso:
le site est super beau sauf la barre latéral
si le get correspond a un nom de page ( comme le site sans base de données que je suis entrain de faire ) ya juste a verrifier si la page existe sinon afficher une page par défaut
ensuite si l'admin est bien proteger par un mot de passe il n'y aura pas de souci enfin je pense
Petite note perso:
le site est super beau sauf la barre latéral
arthezius
Messages postés
3538
Date d'inscription
jeudi 15 mai 2008
Statut
Membre
Dernière intervention
11 septembre 2016
475
19 janv. 2010 à 15:00
19 janv. 2010 à 15:00
Tu devrai:
1) Protéger ta partie administration (maintenance) par un mot de passe.
Tu pourra ensuite a toutes les personnes susceptible de participer à ton site.
2) Faire des contrôles systématique de ce qui est envoyé dans les formulaires.
3) Utiliser la fonction mysql_real_escape_string() dans tes requêtes pour protéger des injections sql combiné éventuellement avec la fonction htmlentities() qui converti les caractères spéciaux en entité html.
Petit conseil supplémentaire, tu devrai utiliser CSS pour rendre ton site plus agréable à voir visuellement parlant en changeant par exemple la police et les couleurs des liens par défaut.
1) Protéger ta partie administration (maintenance) par un mot de passe.
Tu pourra ensuite a toutes les personnes susceptible de participer à ton site.
2) Faire des contrôles systématique de ce qui est envoyé dans les formulaires.
3) Utiliser la fonction mysql_real_escape_string() dans tes requêtes pour protéger des injections sql combiné éventuellement avec la fonction htmlentities() qui converti les caractères spéciaux en entité html.
Petit conseil supplémentaire, tu devrai utiliser CSS pour rendre ton site plus agréable à voir visuellement parlant en changeant par exemple la police et les couleurs des liens par défaut.
OConell
Messages postés
139
Date d'inscription
samedi 1 novembre 2008
Statut
Membre
Dernière intervention
13 octobre 2010
8
19 janv. 2010 à 15:05
19 janv. 2010 à 15:05
Et au niveau code :
------------- affichage des pages et donc numéro de rubrique récupéré en $_GET --------------------
<?php
if (isset($_GET['rubrique'] ) )
{
require("php/comeOn.php");
if($connexion)
{
$rubrique = $_GET['rubrique'];
affiche($rubrique,$connexion);
}
else
{
echo "Erreur de connexion à la base de données <br/>";
}
mysql_close($connexion);
}
function affiche($num_titre,$connexion)
{
$requete="SELECT `libelle_titre` , `description_titre` , `texte_contenu`
FROM `titre` AS t
WHERE t.`num_titre` =$num_titre ;";
$resultat=mysql_query($requete,$connexion);
$tuple=mysql_fetch_array($resultat);
echo "<h1>".$tuple['libelle_titre']."</h1>";
//echo "<br/><h3>Résumé :</h3>".$tuple['description_titre'];
echo "<br/><br/><h3>Contenu de la page :</h3>".$tuple['texte_contenu']."<br/><br/>";
}
?>
------------- ajout d'un nouveau titre de rubrique --------------------
...
$titre = htmlentities($_GET['titre'],ENT_QUOTES,'UTF-8') ;
$partie = $_GET['partie'] ;
...
$requete = "INSERT INTO `judoclubvayres-maintenancelibre`.`titre` (`libelle_titre`, `ordre_titre`)
VALUES ( '$titre', '$partie') " ;
------------ affichaged'une rubrique ------------------------
$rubrique = $_GET['rubrique'];
$requete="SELECT `libelle_titre` , `texte_contenu`, `ordre_titre`
FROM `titre` AS t
WHERE t.`num_titre` =".$rubrique." ;";
------------ modification d'une rubrique ----------------------
if(isset($_POST['rte1']) && isset($_POST['rte2']) && isset($_POST['partie']) && isset($_POST['rubrique']))
{
$contenu = $_POST['rte1'];
$titre = $_POST['rte2'];
$partie = $_POST['partie'];
$rubrique = $_POST['rubrique'];
$requete="UPDATE `titre` SET `libelle_titre` = '".$titre."', `texte_contenu` = '".$contenu."', `ordre_titre` = '".$partie."' WHERE `titre`.`num_titre` = $rubrique ;";
---------------------suppression d'une rubrique ---------
if(isset($_GET['rubrique']))
{
$rubrique = $_GET['rubrique'];
$requete="DELETE FROM `contenu` WHERE `num_titre`=".$rubrique.";";
$resultat=mysql_query($requete,$connexion);
$requete="DELETE FROM `titre` WHERE `num_titre`=".$rubrique.";";
$resultat=mysql_query($requete,$connexion);
header('location: ./' );
exit;
//echo " Rubrique supprimé.<br/>";
}
Voila C tout
merci
------------- affichage des pages et donc numéro de rubrique récupéré en $_GET --------------------
<?php
if (isset($_GET['rubrique'] ) )
{
require("php/comeOn.php");
if($connexion)
{
$rubrique = $_GET['rubrique'];
affiche($rubrique,$connexion);
}
else
{
echo "Erreur de connexion à la base de données <br/>";
}
mysql_close($connexion);
}
function affiche($num_titre,$connexion)
{
$requete="SELECT `libelle_titre` , `description_titre` , `texte_contenu`
FROM `titre` AS t
WHERE t.`num_titre` =$num_titre ;";
$resultat=mysql_query($requete,$connexion);
$tuple=mysql_fetch_array($resultat);
echo "<h1>".$tuple['libelle_titre']."</h1>";
//echo "<br/><h3>Résumé :</h3>".$tuple['description_titre'];
echo "<br/><br/><h3>Contenu de la page :</h3>".$tuple['texte_contenu']."<br/><br/>";
}
?>
------------- ajout d'un nouveau titre de rubrique --------------------
...
$titre = htmlentities($_GET['titre'],ENT_QUOTES,'UTF-8') ;
$partie = $_GET['partie'] ;
...
$requete = "INSERT INTO `judoclubvayres-maintenancelibre`.`titre` (`libelle_titre`, `ordre_titre`)
VALUES ( '$titre', '$partie') " ;
------------ affichaged'une rubrique ------------------------
$rubrique = $_GET['rubrique'];
$requete="SELECT `libelle_titre` , `texte_contenu`, `ordre_titre`
FROM `titre` AS t
WHERE t.`num_titre` =".$rubrique." ;";
------------ modification d'une rubrique ----------------------
if(isset($_POST['rte1']) && isset($_POST['rte2']) && isset($_POST['partie']) && isset($_POST['rubrique']))
{
$contenu = $_POST['rte1'];
$titre = $_POST['rte2'];
$partie = $_POST['partie'];
$rubrique = $_POST['rubrique'];
$requete="UPDATE `titre` SET `libelle_titre` = '".$titre."', `texte_contenu` = '".$contenu."', `ordre_titre` = '".$partie."' WHERE `titre`.`num_titre` = $rubrique ;";
---------------------suppression d'une rubrique ---------
if(isset($_GET['rubrique']))
{
$rubrique = $_GET['rubrique'];
$requete="DELETE FROM `contenu` WHERE `num_titre`=".$rubrique.";";
$resultat=mysql_query($requete,$connexion);
$requete="DELETE FROM `titre` WHERE `num_titre`=".$rubrique.";";
$resultat=mysql_query($requete,$connexion);
header('location: ./' );
exit;
//echo " Rubrique supprimé.<br/>";
}
Voila C tout
merci
OConell
Messages postés
139
Date d'inscription
samedi 1 novembre 2008
Statut
Membre
Dernière intervention
13 octobre 2010
8
19 janv. 2010 à 15:10
19 janv. 2010 à 15:10
Merci pour vos 2 réponses (et tes compliments Moyjin ^^ )
Pour le design, il est fait en CSS, mais je m'en occuperais plus après. La je fait la sécurité... et vu que j'y connais rien en sécu ça me prendras plus de temps.
D'ailleurs sur la sécu, si j'ai posté ça , c'est à cause entre autre à cause de htmlentities. ça ne gêne pas de l'utiliser avec mysql_real_escape_string() ??
Pour le design, il est fait en CSS, mais je m'en occuperais plus après. La je fait la sécurité... et vu que j'y connais rien en sécu ça me prendras plus de temps.
D'ailleurs sur la sécu, si j'ai posté ça , c'est à cause entre autre à cause de htmlentities. ça ne gêne pas de l'utiliser avec mysql_real_escape_string() ??
arthezius
Messages postés
3538
Date d'inscription
jeudi 15 mai 2008
Statut
Membre
Dernière intervention
11 septembre 2016
475
19 janv. 2010 à 16:09
19 janv. 2010 à 16:09
Sur des sites sur lesquels je travail, j'utilise les deux ensembles et je n'ai aucun souci.
Je seul que j'ai, c'est avec l'utilisation de fpdf qui ne gère pas les entités html (fpdf est une classe permettant de gérer des pdf).
Je seul que j'ai, c'est avec l'utilisation de fpdf qui ne gère pas les entités html (fpdf est une classe permettant de gérer des pdf).