La sécurité de votre site

La sécurité d'un site web est une chose assez importante, que trop peu de webmasters s'en préoccupent. Qui n'a jamais vu un site défiguré par quelqu'un qui a de mauvaises intentions ?

Voici quelques conseils pour vous aider à sécuriser votre site. La plupart ne sont que du bon sens.

Les mots de passe

La question qui fâche. Quel mot de passe utilisez vous sur votre panel ? Sur la page d'administration de votre site ? Sur votre base de données ? Sans doute des mots de passe faciles à retenir et faciles à trouver.

  • Il ne faut jamais avoir des mots de passe en rapport avec vous-même (votre date de naissance, le nom de votre chien, même modifié, etc).
  • De même, il ne faut pas que votre mot de passe soit une suite de caractère référencée. Il faut que cela soit vous qui l'inventiez (Pas de mots du dictionnaire, etc)
  • Utilisez des mots de passe avec des majuscules, des minuscules, des chiffres, des caractères spéciaux... Et surtout n'utilisez jamais que des chiffres, ou que des lettres, etc... Mélangez. Enfin, pour avoir des mots de passe forts, il faut qu'ils dépassent 8 caractères.
  • Quatrième chose, ne donnez jamais votre mot de passe ! Si vous le donnez à quelqu'un, il (ou elle) aura les mêmes droits que vous sur votre site et pourra donc le supprimer et le modifier sans problèmes.
  • Enfin, dernier conseil, changez vos mots de passe régulièrement.

Voici une petit tutoriel là dessus.

Les scripts tous prêts

Vous avez installé des forums, des blogs, touts prêts, comme phpBB ou PunBB, DotClear, etc ? Pensez à les mettre à jour régulièrement. Par régulièrement, j'entends, chaque fois qu'une nouvelle version sort. En effet, ces scripts sont open sources et il est facile, dès qu'une mise à jour est publiée, de comparer le code de l'ancienne version à celui de la nouvelle, et de repérer les failles de sécurité qui ont étés corrigées. De plus, ces scripts étant utilisés par des centaines, voir des milliers de personnes, les pirates s'y intéressent plus pour toucher plus de monde.

Vos scripts PHP

Failles de sécurité

Les scripts PHP que vous écrivez peuvent contenir des failles de sécurité si vous n'y faites pas attention. C'est souvent le cas lorsque l'on est assez inexpérimenté en PHP. Il faut faire très attention, car une faille de sécurité d'un script PHP peut-être aussi dangereuse que de laisser votre mot de passe trainer.

Il y a deux failles principales sur les sites en PHP :

  • Les failles de type injection SQL, qui consistent à injecter via les variables d'un script, des données dans votre requête SQL, pour par exemple, vider une table.
  • Les failles de type XSS, qui permettent d'afficher du HTML. A première vue, rien de grave, mais si l'on met des scripts Javascripts cela peut devenir très dangereux.

Pour contrer ces failles, il ne faut que 3 fonctions :

  • Si votre variable est un nombre, penser à utiliser la fonction intval(). Elle transformera votre variable en nombre.
  • Si votre variable est du texte, utilisez la fonction mysql_real_escape_string() avant d'insérer la variable dans la base de données. Elle empêche les injections SQL. Enfin, utilisez la fonction htmlentities() sur l'affichage de ces variables textes, pour éviter les failles XSS.
Liens :

Magic quotes

Les magic quote, ou guillemets magiques, est une option de PHP qui utilise automatiquement la fonction addslashes() sur les variables reçues de l'extérieur. Mais parfois, cela pose beaucoup de problèmes, notamment car si ils sont activés, les développeurs ne font plus attention aux injections SQL. De plus l'échappement des guillemets n'est pas toujours nécéssaire et peut parfois poser des problèmes.

Si vous êtes sûr d'être protégés contre les injections SQL, je vous conseille de désactiver les magic quotes. Cela se fait très facilement chez Breizh Héberg. Dans le panel en mode expert, dans configuration personnalisée d'Apache.

Liens

Ne jamais faire confiance à l'utilisateur

Une devise en PHP que tout le monde devrait connaître. En plus d'utiliser les protections classiques, je vous conseille de vérifier si ce que l'utilisateur a entré est conforme à ce que vous attendiez. Par exemple, si l'utilisateur entre sa date de naissance, vérifier que le jour n'est pas le 31 Février. De même, s'il doit entrer une adresse e-mail, vérifiez bien que sa syntaxe est correcte.

Ne jamais faire confiance à l'utilisateur veut également dire ne jamais faire confiance aux languages clients. En effet, ils peuvent être désactivés, mal interprétés voir modifiés. Une limite en HTML ou en Javascript n'en est pas une.

Conclusion

Ces quelques conseils permettrons d'éviter à un pirate du dimanche d'endommager votre site.

Toutefois, l'on est jamais trop prudent. Pensez à faire régulièrement des sauvegardes, qui pourrons vous permettre de restaurer votre site s'il a été effacé.

 
aide_webmasters/la_securite_de_votre_site.txt · Dernière modification: 2008/04/03 16:43 (édition externe)