Voilà, voilà... Fin de l'aventure...

 

Fermeture de kolossaldrupal.org dans...


Bonjour tout le monde,

Drupal évolue, les versions changent et Kolossaldrupal.org était essentiellement consacré à la version 6 de Drupal.

Autant dire que les infos présentées ici commencent à dater...

Faute de temps, je ne peux plus garder le site Kolossaldrupal à jour...

Je vous aurais bien proposé de reprendre le flambeau mais... c'est tellement simple de nos jours de se faire son propre site à soi...Pourquoi s'embêter alors ? :-)

Ce site restera donc en l'état, tel qu'il était en 2011...

Ah la la ! Cela ne nous rajeunit pas !

Manuel Vila - Avril 2016

É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.

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(0count($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.