Écrire du code sécurisé
Référence sur drupal.org : 15 Mai 2009 – 15h38 - http://drupal.org/writing-secure-code
Vous avez repéré un problème de sécurité ? Informez-en l’équipe de sécurité.
Que vous écriviez un petit bout de code ou un module de A à Z, il est important que votre code soit sécurisé.
Utilisez des fonctions de contrôle sur les sorties pour éviter les attaques par cross-scripting
Aucun contenu fourni par l’utilisateur ne doit être restitué tel quel dans le HTML.
- Utilisez check_plain ou theme(’placholder ’) pour le plain text.
- Utilisez check_markup ou filter_xss pour le balisage contenant du texte
- Utilisez la fonction t() avec les caractères de substitution @ ou % pour construire des chaînes traduisibles sûres
Reportez-vous à Comment manipuler du texte de façon sûre pour plus d’informations
Utilisez la couche d’abstraction de base de données pour éviter les attaques par injection SQL
Utilisez la couche base de données correctement. Par exemple, ne concaténez jamais des données dans une requête SQL comme ceci :
<?php
db_query('SELECT foo FROM {table} t WHERE t.name = '. $_GET['user']);
?>A la place, utilisez les caractères de substitution avec db_query :
<?php
db_query("SELECT foo FROM {table} t WHERE t.name = '%s' ", $_GET['user']);
?>S’il y a un nombre variable d’arguments dans votre requête, créer un tableau de caractères de substitution. Ne faites pas ceci :
<?php
db_query("SELECT t.s FROM {table} t WHERE t.field IN (%s)", $from_user);
?>Mais faites cela :
<?php
$placeholders = implode(',', array_fill(0, count($from_user), "%d"));
db_query("SELECT t.s FROM {table} t WHERE t.field IN ($placeholders)", $from_user);
?>Utilisez db_rewrite_sql pour respecter les restrictions d’accès aux nodes
Beaucoup d’instructions SQL qui se réfèrent aux nodes ou à la table {node} doivent êtres emballées dans un appel à la fonction db_rewrite_sql() :
<?php
$result = db_query(db_rewrite_sql("SELECT n.nid, n.title FROM {node} n"));
?>Le mécanisme d’accès aux nodes de Drupal requiert ces appels. Sans eux, les visiteurs pourraient avoir accès à des nodes pour lesquels ils n’ont pas d’autorisation d’accès.
- Version imprimable
- Ajouter un commentaire
- 887 lectures


Commentaires récents
il y a 6 heures 6 min
il y a 23 heures 53 min
il y a 1 semaine 3 jours
il y a 2 semaines 3 jours
il y a 3 semaines 12 heures
il y a 3 semaines 6 jours
il y a 4 semaines 1 heure
il y a 4 semaines 3 heures
il y a 4 semaines 2 jours
il y a 4 semaines 6 jours