Comment sécuriser mon site

Résolu/Fermé
BuddyLove_x52 Messages postés 123 Date d'inscription dimanche 12 janvier 2014 Statut Membre Dernière intervention 16 mai 2017 - Modifié par jordane45 le 4/02/2015 à 18:41
BuddyLove_x52 Messages postés 123 Date d'inscription dimanche 12 janvier 2014 Statut Membre Dernière intervention 16 mai 2017 - 4 févr. 2015 à 22:14
Bon soir tous le monde !

Mon site n'est pas sécuriser on peut accéder a ma bdd.. J'envoie des donner via l'url il me semble que sa viens de la, un copain a réussis a me sortir mon mot de passe, il m'as dit qu'il avais réussis a rentré dans ma BDD via un logicielle !

Voici mon code :

<?php
session_start();

if(isset($_SESSION['pseudo']))
{

?>
<meta charset="utf-8">
<?php
include("afficher.func.php");
 $bdd = new PDO('mysql:host=sql1.olympe.in;dbname=mabdd;charset=utf8', 'monuser', 'monpass');

if (isset($_POST['submit']))
{
     
     
 $pseudo = htmlspecialchars(trim($_SESSION['pseudo']));
 $corps = htmlspecialchars(trim($_POST['corps']));

 
 if(empty($pseudo) || empty($corps))
 {
  echo"Veuillez completer tous lezs champs";

 } else{
 inserer_article($pseudo,$corps);
 }
 
  



}
?>
<form method="post" action="">

<p>Votre article</p>
<textarea name="corps" cols="20" rows="7"></textarea><br><br>

<input type="submit" name="submit" value="Poster" />

</form>

<hr/>

<?php

try
{
// On se connecte à MySQL
 $bdd = new PDO('mysql:host=sql1.olympe.in;dbname=mabdd;charset=utf8', 'monuser', 'monpass');
}
catch(Exception $e)
{
 // En cas d'erreur, on affiche un message et on arrête tout
 die('Erreur : '.$e->getMessage());
}
$req = $bdd->prepare('SELECT * FROM articles ORDER BY date DESC');

$afficher_articles = afficher_articles();

foreach($afficher_articles as $afficher_article)
{

echo "Poster par ".$afficher_article['pseudo']."<br>";
echo $afficher_article['corps']."<br>";
echo "Le ".date('d/m/Y à H:i:s',strtotime($afficher_article['date']))."<br><br>"; 
?>
<a href="inserer.php?id=<?php echo $afficher_article['id_article']?>">Poster un commentaires</a> - <a href="afficher_commentaire.php?id=<?php echo $afficher_article['id_article']?>">Voire commentaires</a>

<hr/>
<?php
}
?>
<?php
}else{
header('Location:login.php');
}
?>
<a href="logout.php">Me deconnecter</a>
<a href="mini_chat.php" target="_blank">Chat</a>
A voir également:

4 réponses

jordane45 Messages postés 38358 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 28 décembre 2024 4 719
4 févr. 2015 à 18:41
Bonjour,

En même temps... si il a eu accès au code de ta page (celui que tu nous montres ..) il n'aura pas eu de mal...
Tu nous file les identifiants de connexion à ta base..... :-(

J'édite ton message pour mettre de faux identifiants....
sinon tu vas vite avoir du monde sur ton phpmyadmin ....


1
jordane45 Messages postés 38358 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 28 décembre 2024 4 719
4 févr. 2015 à 18:44
Je t'invite fortement à également mettre la connexion à ta BDD dans un fichier à part... et à ne l'inclure dans tes pages qu'au besoin....
Et également... pas besoin de le mettre plusieurs fois dans une même page comme c'est le cas actuellement....
0
BuddyLove_x52 Messages postés 123 Date d'inscription dimanche 12 janvier 2014 Statut Membre Dernière intervention 16 mai 2017
4 févr. 2015 à 18:52
Oui effectivement, mon site est déjà mort ! Pas grave il y avais que des truc test dessus...! D'accord merci du conseil, mais cela ne protégeras pas ma bdd ?
0
jordane45 Messages postés 38358 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 28 décembre 2024 4 719
4 févr. 2015 à 19:12
Si ton pote connait déjà les identifiants... non... il pourra y retourner !

Par contre, (en dehors de ton pote) tu peux regarder du côte de l'injection SQL par exemple.
mais normalement avec PDO les risques sont assez limités.
Tout dépend comment tu gères tes requêtes.....

Regardes ce tuto par exemple : http://openclassrooms.com/courses/eviter-les-injections-sql
0
BuddyLove_x52 Messages postés 123 Date d'inscription dimanche 12 janvier 2014 Statut Membre Dernière intervention 16 mai 2017
4 févr. 2015 à 19:14
Mon pote ne compte pas la coulé ! Il a juste tester la sécuriter.. On a monter ce projet ensemble !

Ok merci de l'aide ! Mais je suis bien obliger d'écrire le mdp de ma base quelques part si je veut y accéder ? =/
0
jordane45 Messages postés 38358 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 28 décembre 2024 4 719
4 févr. 2015 à 19:16
oui bien sûr....
Mais tu peux très bien le mettre dans un fichier : connexion.php et faire un INCLUDE de ce fichier dans les pages de ton site...
..... et surtout... tu peux éviter de nous le montrer !!

N'oublies pas non plus de sécuriser l'accès aux fichiers qui sont sur le serveur via un fichier .htaccess par exemple.
0
BuddyLove_x52 Messages postés 123 Date d'inscription dimanche 12 janvier 2014 Statut Membre Dernière intervention 16 mai 2017
4 févr. 2015 à 19:30
Oui j'ai trop fais le con la.. J'y ait pas du tous pensé !!

Oui merci, j'ai mit aucune sécurité nul part, je viens de voir sa..!

Sa nomplus c'est pas bien ?

$req = $bdd->query('SELECT * FROM commentaires where ID_article='.$_GET['id'].' ORDER BY date DESC');
0
jordane45 Messages postés 38358 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 28 décembre 2024 4 719 > BuddyLove_x52 Messages postés 123 Date d'inscription dimanche 12 janvier 2014 Statut Membre Dernière intervention 16 mai 2017
Modifié par jordane45 le 4/02/2015 à 20:30
En effet, la requête que tu nous montres n'est clairement pas sécurisée.

avec un prépare.. c'est mieux.
$sql="SELECT * 
        FROM commentaires 
        WHERE ID_article=:id 
        ORDER BY date DESC";

$req = $bdd->prepare($sql);
$param = array('id'=>$_GET['id']);
$req ->execute($param);
0
Bonjour,

pour sécuriser ton site, hormis les injections Sql ( merci à notre ami Jordanne45 de le souligner ) tu peux également stocker les mdp cryptés dans ta bdd avec la fonction php crypt. Lors du login, tu compares le crypt du mdp rentré dans le formulaire à celui de ta bdd ( stoké crypté ). Le mot de passe n'apparait jamais en clair. Par contre, dans ce cas la, il faut indiquer aux inscrits qu'en cas d'oubli de leur mdp il ne te sera pas possible de le refournir par exemple avec un lien " mot de passe oublié ". Pour éviter le passage visible d'arguments dans l'adresse, utilise la methode POST de ton form. N'oublie pas non plus d'appliquer les restrictions sur l'accès de tes répertoires ( chmod )

Contrer les injections SQL, crypter tes mdp et surtout, eviter de donner les détails de ta conn. dans la question ou les reponses sur Ccm : )

Cdt

ps -> https://www.php.net/manual/fr/function.htmlspecialchars.php

Bonne lecture ^^

En informatique 99% des problèmes se situent entre le fauteuil et le clavier
0
BuddyLove_x52 Messages postés 123 Date d'inscription dimanche 12 janvier 2014 Statut Membre Dernière intervention 16 mai 2017
4 févr. 2015 à 22:14
Merci :)
0