Les conseils de base pour la sécurité d'un site

Consultez la formation à Google Analytics de WebRankInfo / Ranking Metrics

Chark
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 21
Inscription: 19 Déc 2005

Les conseils de base pour la sécurité d'un site

Message le Dim Oct 22, 2006 13:49

Après m'être rendu compte que de nombreuses personnes se font pirater ou recherchent une sécurité maximum pour leurs sites, je lance ce sujet qui a pour but de recenser les "choses à faire et ne pas faire".
Le but de ce post n'est pas de donner les techniques complètes, mais plutôt une sorte d'index. Chacun des points évoqués ici pourront faire l'objet d'autres sujets pour rentrer dans le détail.
Je vais commencer cette liste. j'appelle tout le monde à participer pour que cette liste soit le plus exhaustive possible et je mettrai à jour la liste au fur et à mesure.
Libre à un admin du site de le mettre en post it ou de le laisser sombrer dans les méandres du forum.

LES CHOSES A FAIRE ET NE PAS FAIRE POUR SÉCURISER SON SITE INTERNET :

- Toujours penser qu'un bon pirate trouvera toujours les infos qu'il veut
Par exemple, il y a quelques jours un collègue me disais à propose de son site à propos de ces pages passées en "include" avec une variable GET :"J'ai utilisé url rewriting, changé toutes les variables, il est quasiment impossible de comprendre comment la page est traitée... Bien sur si un pirate le comprends, la c'est vulnérable"...
ERREUR ! Il faut TOUJOURS penser que quelqu'un arrivera à trouver ses infos, donc sécuriser au cas ou.

- Utiliser la politique du "tout interdire sauf..." plutôt que "tout accepter sauf..."
Par exemple, vous faite un formulaire, il y a 6 choix possibles : Lors du traitement de ce formulaire en php, il faut faire des IF qui vont accepter Seulement les 6 choix et interdire tous les autres !

- Bien verrouiller toutes les variables en GET
Si c'est une variable du style machin=55 ( que des chiffres ), penser a voir ce que ca donne si on met des lettres ( très souvent cela donne une erreur, et le navigateur affiche l'erreur avec une partie de ta requête sql = vulnérabilité )

- Désactiver les messages erreur php/sql lors de la mise en ligne
C'est bien pour le codage, mais avoir des messages genre " mysql erreur line 55 near 'query machin from table", c'est pas bon pour la sécurité.

- Bannir les includes par GET
ou alors vraiment les sécuriser en acceptant que vos url avec un code du genre :

Code: Tout sélectionner
$valid_pages = array ('index', 'rechercher', 'downloads', 'liens', 'construction');

if (in_array($_GET['page'], $valid_pages)) { $PAGE = $_GET['page']; return $PAGE; } else { $PAGE='construction'; $FOLDER='construction'; return $PAGE; return $FOLDER; }


- Ne pas mettre de lien vers l'interface administrateur depuis le site accessible coté "client"
L'administration du site se fait par un dossier ou une adresse que l'on tape manuellement dans le navigateur

- Mettre un fichier "index.php" ou "index.html" dans chacun de ses dossiers
Tous les dossiers ! images, photos, etc...
Pour éviter que l'on puisse, en tapant l'adresse du dossier dans le navigateur ( comme w*ww.example.com/images/ ) avoir la liste des pages ou fichiers contenus dans ce dossier.
Cet index peut , au choix, renvoyer vers la page d'accueil du site ou afficher un message d'erreur.

- Utiliser le htmlentities ou des fonctions ereg pour traiter les variables en POST ou GET
Pour éviter l'injection de script par un internaute.

- Protéger ses dossiers sensibles ( commme admin ) avec un htaccess et htpass
Ca peut paraître tout bête mais j'ai connu des personnes qui l’oubliaient.
De plus, nommer son fichier admin d'un autre nom que admin ou administrateur est conseillé.

- Ne passer aucune variable "sensible" ( comme un mot de passe ) en GET, cookie ou en form hidden
Il sera très facile pour un pirate débutant de les récuperer.

- Nommer les fichiers à inclure en .php
Quand vous faites des includes nommez vos fichiers en .php et pas .inc, .txt ou autre sinon un pirate malin pourra lire vos commandes php, vos données et autres!
Dernière édition par Chark le Lun Oct 23, 2006 14:20, édité 6 fois.

touftouf
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 455
Inscription: 7 Nov 2005

Message le Dim Oct 22, 2006 13:55

Merci pour cette petit resumé, en se moment on n'en a besoin, en fait , il s'agit surtout de ceux qui ont un serveur dedié

Chark
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 21
Inscription: 19 Déc 2005

Message le Dim Oct 22, 2006 13:58

La sécurité est l'affaire de tout le monde , dédié ou mutu :D
Il y a des techniques différentes mais il y a aussi des techniques communes aux deux.
Le but de ce post est d'essayer de penser à tout le monde :wink:


cmpc2002
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 44
Inscription: 19 Mai 2006

Message le Dim Oct 22, 2006 14:59

Bonjour,

Si je peut me permettre, moi j'utilise un script de bannissement automatique si dans l'url quelqu'un ajoute un -http://...

Cela, permet de limiter la casse et d'éviter bien des ennuis, puisqu'il est en principe impossible d'inclure une page distante par exemple.

Voici le code :
Code: Tout sélectionner
<?php

if ( (isset($_SERVER['REQUEST_URI'])) && (eregi("http://", $_SERVER['REQUEST_URI']) )
{
   header("HTTP/1.1 401 Unauthorized");
   die('M&ecirc;me pas en r&ecirc;ve.');
   exit;
}

?>


Bon, après, on peut pousser le script et écrire dans le htaccess l'ip de la personne concernée affin qu'elle ne puisse pas revenir tout de suite, chose que je fait.

voila, si ça peut aider quelqu'un.

CMPC2002

Chark
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 21
Inscription: 19 Déc 2005

Message le Dim Oct 22, 2006 15:18

Si je peut me permettre, moi j'utilise un script de bannissement automatique si dans l'url quelqu'un ajoute un -http://...

Cela, permet de limiter la casse et d'éviter bien des ennuis, puisqu'il est en principe impossible d'inclure une page distante par exemple.


C'est une bonne méthode éffectivement, mais non applicable sur certains sites.
Je pense notemment aux sites qui proposent des upload de fichiers ( ou de photos si le script d'upload n'est pas assez sécurisé )
Rien n'empeche un pirate d'upload un fichier malsain contenant des scripts, puis de taper en url w*ww.example.com?include=/dossier_upload/monfichierhack.php

Voila pourquoi je préconise plutot la méthode de n'accepter que les url prédéfinies.
Bien sur, cette méthode non plus n'est pas applicable tout le temps et ta méthode est alors applicable.

Merci pour ta participation

PS : Je n'ai pas ajouté ton script au message original. Ce n'est pas parce qu'il n'est par interessant, loin de la, mais plutôt car le but de mon post est de donner des "lignes de conduites" et ne pas entrer dans un débat sur tel ou tel script ( qui peuvent faire l'objet d'un sujet très intéressant d'ailleurs ).

thierry8
WRInaute accro
WRInaute accro
 
Messages: 3251
Inscription: 11 Juil 2005

Message le Dim Oct 22, 2006 17:13

dans le cas d'un upload justement quels sont les choses à faire / pas faire ?

dl d'une image / fichier
Dernière édition par thierry8 le Dim Oct 22, 2006 20:03, édité 1 fois.


TOMHTML
WRInaute accro
WRInaute accro
 
Messages: 3250
Inscription: 25 Aoû 2004

Message le Dim Oct 22, 2006 17:15

Je rajouterai "eviter de mettre sa partie admin dans le répertoire /admin/" ;)


guicara
WRInaute passionné
WRInaute passionné
 
Messages: 2472
Inscription: 2 Fév 2006

Message le Dim Oct 22, 2006 19:44

TOMHTML a écrit:Je rajouterai "eviter de mettre sa partie admin dans le répertoire /admin/" ;)


Chark a écrit:De plus, nommer son fichier admin d'un autre nom que admin ou administrateur est conseillé.


:roll:

Lord_Coder
WRInaute discret
WRInaute discret
 
Messages: 243
Inscription: 15 Avr 2006

Message le Dim Oct 22, 2006 19:56

Juste une petite explication , la raison pour laquelle on ne doit pas passer des mots de passe en GET c'est que si un utilisateur se connecte et qu'il clique sur un lien externe , peut être que ce le site externe dispose d'un systéme qui analyse les referers et pourra donc voir l'adresse depuis laquelle le visiteur est parvenu à son site , le mot de passe va alors être affiché !


ckarone
WRInaute impliqué
WRInaute impliqué
 
Messages: 522
Inscription: 29 Juin 2004

Message le Lun Oct 23, 2006 12:55

Salut,

Quand vous faites des includes nommez vos fichiers en .php et pas .inc ou autre sinon un pirate malin pourra lire vos commandes php et autres!

Chark
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 21
Inscription: 19 Déc 2005

Message le Lun Oct 23, 2006 14:21

Merci ckarone
Je l'ai ajouté à la liste.

Chark
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 21
Inscription: 19 Déc 2005

Message le Lun Oct 23, 2006 14:30

dans le cas d'un upload justement quels sont les choses à faire / pas faire ?

dl d'une image / fichier


Déja, bien vérifier l'extension du fichier ( dans le cas d'une image, vérifier qu'ils'agit d'un jpg, jpeg, png, gif )
vérifier aussi qu'il ne comporte qu'une seule extension ( pour eviter les fichiers du type fichier.exe.jpg.
Je conseille aussi de renommer le fichier.


mr_go
WRInaute passionné
WRInaute passionné
 
Messages: 1945
Inscription: 21 Sep 2005

Message le Lun Oct 23, 2006 14:46

- Bien verrouiller toutes les variables en GET
Si c'est une variable du style machin=55 ( que des chiffres ), penser a voir ce que ca donne si on met des lettres ( très souvent cela donne une erreur, et le navigateur affiche l'erreur avec une partie de ta requête sql = vulnérabilité )


J'ajouterai à ceci : TOUJOURS CONTROLER COTE SERVEUR les variables envoyées côté client. Proscrire "javascript only" pour le controle des champs. (Pour les PHPistes, voir du coté de PEAR::Quickform.

Cela revient au même mais toujours utile à préciser..; ;)

thierry8
WRInaute accro
WRInaute accro
 
Messages: 3251
Inscription: 11 Juil 2005

Message le Lun Oct 23, 2006 14:59

Chark a écrit:
dans le cas d'un upload justement quels sont les choses à faire / pas faire ?

dl d'une image / fichier


Déja, bien vérifier l'extension du fichier ( dans le cas d'une image, vérifier qu'ils'agit d'un jpg, jpeg, png, gif )
vérifier aussi qu'il ne comporte qu'une seule extension ( pour eviter les fichiers du type fichier.exe.jpg.
Je conseille aussi de renommer le fichier.

a partir du moment ou il existe une extension "finale" quel est le danger ?

Chark
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 21
Inscription: 19 Déc 2005

Message le Lun Oct 23, 2006 15:31

a partir du moment ou il existe une extension "finale" quel est le danger ?

Il me semble avoir lu quelque part qu'il y avait un risque ( mais je n'ai pas les détails )
En matière de sécurité d'un site, je suis partisan du :"être paranoïaque est ma devise" :lol:

Les conseils de base pour la sécurité d'un site

Si vous avez aimé cette discussion, partagez-la sur vos réseaux sociaux préférés :

Formation recommandée sur ce thème :

Formation Google Analytics : en 2 jours, apprenez comment exploiter l'essentiel des possibilités de l'outil de mesure d'audience de Google. Formation animée par les experts Google Analytics de Ranking Metrics.

Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.

Lectures recommandées sur ce thème :

Consultez la description détaillée des produits ou services de Google suivants : Google Base, Google Chrome

  • Suggestions Google Suggest
    Cet outil vous permet d'obtenir une liste de 10 mots ou expressions suggérés par Google sur la base d'un mot que vous fournissez.


Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités