Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD > PHP & MySQL
PHP & MySQL Forum d'entraide sur les fonctions MySQL avec PHP. Avant de poster -> FAQ MySQL, Cours MySQL et Sources MySQL. Pour les questions concernant le moteur MySQL plutôt que les fonctions PHP, merci d'utiliser le forum MySQL.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 21/11/2011, 11h41   #1
Nouveau Membre du Club
 
Femme
Inscription : mars 2009
Messages : 174
Détails du profil
Informations personnelles :
Sexe : Femme

Informations forums :
Inscription : mars 2009
Messages : 174
Points : 28
Points : 28
Envoyer un message via MSN à xzéna
Par défaut sécurité face au hackers

bonjour,
je sais pas franchement où postuler mon problème.mais puisque c'est du PHP alors je croix c'est convenable ici..
Bon,dernièrement beaucoup de sites ont été hackés par certains hackers! on dirait des diables >.< alors mes 2 sites ont été parmi les victimes..
mes questions donc c'est comment se comporter face à tel attaque?faut reprogrammer à nouveau mon site ?si oui il faut modifier quoi au juste?changer quoi?..
surtout si y a des indications précis pour me concentré sera très gentil et merci pour tout aide.
__________________
y a pas d'autre solution..il faut apprendre !!
xzéna est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/11/2011, 12h30   #2
Modérateur
 
Avatar de Benjamin Delespierre
 
Benjamin Delespierre
Développeur Web
Inscription : février 2010
Messages : 2 991
Détails du profil
Informations personnelles :
Nom : Benjamin Delespierre
Âge : 24
Localisation : France

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : février 2010
Messages : 2 991
Points : 5 032
Points : 5 032
Hello

Y'a pas de solution magique contre le piratage, la sécurité informatique c'est par définition du cas par cas.
Néanmoins, voici quelques écueils qu'il faut à tout prix éviter:
Il faut toujours considérer que l'utilisateur c'est le mal.Et dans ton système, la base de données c'est l'utilisateur, donc la base de données c'est le mal.
Il systématiquement tout vérifier. L'usage des filtres est une bonne pratique dans cette optique.

Enfin, il faut tenir PHP et Apache à jour pour éviter les failles. Pour constater une faille ou une faiblesse rien ne vaut une consultation régulière des logs d'accès. Il ne faut pas hésiter à bloquer les IP qui ont utilisés des URL louches.

Pour ma part, je considère que la plupart des sites sont vulnérables aux injections SQL. La faute à tous les tutoriaux pour débutant qu'on trouve un peu partout et qui véhiculent de très mauvais exemples en termes de sécurité (commentcamarche.net en est le parfait exemple, j'ai jamais rien vu d'aussi mauvais.)
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom
Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même).

Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...".
Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug.

Les boutons et existent, servez-vous en
Benjamin Delespierre est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/11/2011, 18h17   #3
Nouveau Membre du Club
 
Femme
Inscription : mars 2009
Messages : 174
Détails du profil
Informations personnelles :
Sexe : Femme

Informations forums :
Inscription : mars 2009
Messages : 174
Points : 28
Points : 28
Envoyer un message via MSN à xzéna
ok merci pour ta réponse.
alors j'ai pris ça en charge et j'ai re-hébergé le site.mais toujours le même problème.
Cad:dès que mon site s'ouvre il se redirige toujours vers un autre lien qui contient le msg du hacker.
je sais pas là quoi faire :s
__________________
y a pas d'autre solution..il faut apprendre !!
xzéna est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/11/2011, 18h19   #4
Modérateur
 
Inscription : septembre 2010
Messages : 7 138
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 138
Points : 8 502
Points : 8 502
http://php.net/manual/fr/security.php
__________________
http://blog.stealth35.com/
stealth35 est actuellement connecté   Envoyer un message privé Réponse avec citation 10
Vieux 22/11/2011, 18h46   #5
Modérateur
 
Avatar de Benjamin Delespierre
 
Benjamin Delespierre
Développeur Web
Inscription : février 2010
Messages : 2 991
Détails du profil
Informations personnelles :
Nom : Benjamin Delespierre
Âge : 24
Localisation : France

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : février 2010
Messages : 2 991
Points : 5 032
Points : 5 032
T'as été victime d'une attaque XSS à tous les coups (sûrement dûe à une faille d'injection SQL).

La seule solution dans ce cas c'est d'aller purger la base de données à la main.
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom
Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même).

Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...".
Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug.

Les boutons et existent, servez-vous en
Benjamin Delespierre est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/11/2011, 12h13   #6
Nouveau Membre du Club
 
Femme
Inscription : mars 2009
Messages : 174
Détails du profil
Informations personnelles :
Sexe : Femme

Informations forums :
Inscription : mars 2009
Messages : 174
Points : 28
Points : 28
Envoyer un message via MSN à xzéna
Citation:
Envoyé par stealth35 Voir le message
oui merci j'ai consulté déjà le lien.et j'ai ajouté quelques fonctions au niveau de code pour éviter les injections sql.mais la redirection est toujours opérationnelle :s


@Benjamin :cad la vider et importer mon ancienne version qui était non-online ? ou bien en enlevé quelque chose précis ?

Merci pour les explications.
__________________
y a pas d'autre solution..il faut apprendre !!
xzéna est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/11/2011, 13h31   #7
Rédacteur/Modérateur
 
Avatar de SpaceFrog
 
Homme
Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Inscription : mars 2002
Messages : 30 052
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Royaume-Uni

Informations professionnelles :
Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Secteur : Industrie

Informations forums :
Inscription : mars 2002
Messages : 30 052
Points : 45 161
Points : 45 161
jette un oeil dans ton htaccess ...
__________________
Ma page Developpez
Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
Votre post est résolu ? Alors n'oubliez pas le Tag


réalisations :www.planet-languages.com|www.saftair.com| www.ouestisol.fr | www.sebemex.fr | www.extramiante.fr | www.sistac-alizay.fr | www.acoustishop.fr | www.litt.fr | www.ouestventil.fr
SpaceFrog est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/11/2011, 13h46   #8
Nouveau Membre du Club
 
Femme
Inscription : mars 2009
Messages : 174
Détails du profil
Informations personnelles :
Sexe : Femme

Informations forums :
Inscription : mars 2009
Messages : 174
Points : 28
Points : 28
Envoyer un message via MSN à xzéna
Citation:
Envoyé par SpaceFrog Voir le message
jette un oeil dans ton htaccess ...
il est vide !
__________________
y a pas d'autre solution..il faut apprendre !!
xzéna est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/11/2011, 16h06   #9
Modérateur
 
Avatar de Benjamin Delespierre
 
Benjamin Delespierre
Développeur Web
Inscription : février 2010
Messages : 2 991
Détails du profil
Informations personnelles :
Nom : Benjamin Delespierre
Âge : 24
Localisation : France

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : février 2010
Messages : 2 991
Points : 5 032
Points : 5 032
Citation:
@Benjamin :cad la vider et importer mon ancienne version qui était non-online ? ou bien en enlevé quelque chose précis ?
C'est à dire trouver ou se cache le petit malin qu'a inséré <script ... quelque part
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom
Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même).

Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...".
Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug.

Les boutons et existent, servez-vous en
Benjamin Delespierre est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/11/2011, 18h12   #10
Nouveau Membre du Club
 
Femme
Inscription : mars 2009
Messages : 174
Détails du profil
Informations personnelles :
Sexe : Femme

Informations forums :
Inscription : mars 2009
Messages : 174
Points : 28
Points : 28
Envoyer un message via MSN à xzéna
Citation:
Envoyé par Benjamin Delespierre Voir le message
C'est à dire trouver ou se cache le petit malin qu'a inséré <script ... quelque part
Merci pour l'idée.c'est vrai j'ai trouvé certains conneries..
__________________
y a pas d'autre solution..il faut apprendre !!
xzéna est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/11/2011, 18h30   #11
Modérateur
 
Avatar de Benjamin Delespierre
 
Benjamin Delespierre
Développeur Web
Inscription : février 2010
Messages : 2 991
Détails du profil
Informations personnelles :
Nom : Benjamin Delespierre
Âge : 24
Localisation : France

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : février 2010
Messages : 2 991
Points : 5 032
Points : 5 032
* mode inquisiteur on *

Il faut chasser la donnée hérétique ! Brulez la table qui est à l'origine de l'appartion du malin dans votre modèle de données ! Il faut détruire l'impie qui s'est insidieusement logé au sein même de notre sainte base et en à violé tous les cannons ! Purgez, peuple de l'internet ! Purgez vos modèles de toutes leurs souillure hérétiques !

* mode inquisiteur off *

Ahem... Bon bah vire moi tout ça
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom
Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même).

Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...".
Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug.

Les boutons et existent, servez-vous en
Benjamin Delespierre est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/11/2011, 11h07   #12
Nouveau Membre du Club
 
Femme
Inscription : mars 2009
Messages : 174
Détails du profil
Informations personnelles :
Sexe : Femme

Informations forums :
Inscription : mars 2009
Messages : 174
Points : 28
Points : 28
Envoyer un message via MSN à xzéna
Euuuuh
..faut alors après la suppression du script et certains enregistrements ajoutés par le hacker. il faut vider toute la base et après l'importer à nouveau c'est ça?
parce que même si je crie une nouvelle DB c'est nécessaire d'importer les données déjà remplis..
merci à vous.
__________________
y a pas d'autre solution..il faut apprendre !!
xzéna est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/11/2011, 12h38   #13
Modérateur
 
Avatar de Benjamin Delespierre
 
Benjamin Delespierre
Développeur Web
Inscription : février 2010
Messages : 2 991
Détails du profil
Informations personnelles :
Nom : Benjamin Delespierre
Âge : 24
Localisation : France

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : février 2010
Messages : 2 991
Points : 5 032
Points : 5 032
Non, ce n'est pas la peine de réimporter le modèle, s'il à été correctement purgé.

N'oublie pas de mettre les filtres en sortie pour éviter ce genre de bisbille à l'avenir.

Pour t'aider voici quelques exemples:
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
// Récupération d'informations
$inputs = filter_input_array(INPUT_POST, array(
  'name' => FILTER_VALIDATE_STRING,
  'mail' => FILTER_VALIDATE_EMAIL,
));
 
// Le filtre renvoie false si les deux $_POST['name'] et/ou $_POST['mail']
// sont vides ou s'ils ne correspondent pas au filtre (adresse mail incorrecte
// par exemple)
 
if ($inputs === false) {
  echo "Saisie invalide ! Vous êtes un nul !";
}
 
echo "Bonjour {$inputs['name']} {$inputs['surname']} (age {$inputs['age']})"
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
// Enregistrement en base
 
// avec l'extension PDO
// (les backquotes ` ne sont pas obligatoires mais c'est une bonne pratique de toujours les mettre)
$query = "INSERT INTO `table` SET `name`=:name, `surname`=:surname, `age`=:age";
$statement = $pdo->prepare($query);
// même $inputs que plus haut
if ($statement->execute($inputs)) {
  echo "Données enregsitrées";
}
 
// avec l'extension mysql (procédural)
foreach ($inputs as $key => $value)
  $inputs[$key] = mysql_real_escape_string($inputs[$key]);
 
$query = "INSERT INTO `table` SET `name`='{$inputs['name']}, `surname`='{$inputs['surname']}, `age`={$inputs['age']}";
 
if (mysql_query($query)) {
  echo "Données enregistrées";
}
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
// Lire des données depuis la BDD
 
// Ne JAMAIS utiliser *, toujours préférer une liste de colonnes !
$query = "SELECT `name`,`surname`,`age`  FROM `table`";
 
if ($stmt = $pdo->query($query)) {
  foreach ($stmt as $row) {
    // on peut également utiliser filter_var_array
    $name = filter_var($row['name'], FILTER_SANITIZE_STRING);
    $surname = filter_var($row['surname'], FILTER_SANITIZE_STRING);
    $age = filter_var($row['age'], FILTER_SANITIZE_NUMBER);
 
    echo "Bonjour {$name} {$surname} (age {$age})";
  }
}
 
// grosso modo la même chose avec mysql_query
Avec ça tu évite les injections SQL et les attaques XSS.

Note: les filtres sont excessivement pratiques à utiliser car il te dispensent des habituelles vérification isset($_POST[...]) et ne renvoie que les indexes définis dans le filtre (les variables supplémentaires ne sont pas prises en compte et n'apparaissent pas dans $inputs final).
Egalement, cette méthode te permet de valider que les données mandataires sont présentes:
Code :
1
2
3
4
5
6
7
8
$inputs = filter_input_array(INPUT_POST, array(
  'name' => FILTER_VALIDATE_STRING,
  'mail' => FILTER_VALIDATE_EMAIL,
));
 
if ($inputs === false) {
  echo "Saisie Invalide !";
}
Voir http://php.net/manual/fr/function.filter-var.php
Voir http://php.net/manual/en/function.fi...nput-array.php
Voir http://www.phpsecure.info/v2/article/XSS.php
Voir http://php.net/manual/fr/book.pdo.php
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom
Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même).

Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...".
Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug.

Les boutons et existent, servez-vous en
Benjamin Delespierre est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 28/11/2011, 11h27   #14
Nouveau Membre du Club
 
Femme
Inscription : mars 2009
Messages : 174
Détails du profil
Informations personnelles :
Sexe : Femme

Informations forums :
Inscription : mars 2009
Messages : 174
Points : 28
Points : 28
Envoyer un message via MSN à xzéna
Merci pour ces explications Benjamin . ça marche
__________________
y a pas d'autre solution..il faut apprendre !!
xzéna est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 10h47.


 
 
 
 
Partenaires

Hébergement Web