Ceci est une ancienne révision du document !


Sécurité

La sécurité dans les modules est primordiale ! A quoi sert de sécuriser le noyau npds si les modules sont de vrai passoire….

Veuillez lire La Sécurité auparavant

Considération de Sécurisation

(et retro compatibilité) d’un module pour NPDS

Si l’on prend l’architecture d’un module (dans cette note nous utiliserons module_1) : /modules

  module_1
  index.php
  bloc.php
  /admin
      adm.php
  /retro-compat

Ce module contient :

  • des scripts PHP à sa racine
  • un fichier permettant la réalisation d’un bloc NPDS
  • des include
  • une administration via l’admin-plugins de NPDS

Sécurisation des INCLUDE

Script lancé par modules.php (dans notre exemple : index.php )

Au début de chaque fichier PHP (après le cartouche de commentaires décrivant le module, licence, …) il est nécessaire de rajouter :

// For More security
if (!eregi("modules.php", $PHP_SELF)) { die(); }
if (strstr($ModPath,"..") || strstr($ModStart,"..") || stristr($ModPath, "script") || stristr($ModPath,
"cookie") || stristr($ModPath, "iframe") || stristr($ModPath, "applet") || stristr($ModPath, "object") ||
stristr($ModPath, "meta") || stristr($ModStart, "script") || stristr($ModStart, "cookie") ||
stristr($ModStart, "iframe") || stristr($ModStart, "applet") || stristr($ModStart, "object") ||
stristr($ModStart, "meta")) {
die();
}
// For More security
// Retro compatibilité SABLE
if (!function_exists("sql_connect")) {
include ("modules/$ModPath/retro-compat/mysql.php");
}
// Retro compatibilité SABLE
 
 

Script lancé par admin.php (dans notre exemple : admin/adm.php )

Au début de chaque fichier PHP (après le cartouche de commentaires décrivant le module, licence, …) il est nécessaire de rajouter :

// For More security
if (!eregi("admin.php", $PHP_SELF)) { die(); }
if (strstr($ModPath,"..") || strstr($ModStart,"..") || stristr($ModPath, "script") || stristr($ModPath,
"cookie") || stristr($ModPath, "iframe") || stristr($ModPath, "applet") || stristr($ModPath, "object") ||
stristr($ModPath, "meta") || stristr($ModStart, "script") || stristr($ModStart, "cookie") ||
stristr($ModStart, "iframe") || stristr($ModStart, "applet") || stristr($ModStart, "object") ||
stristr($ModStart, "meta")) {
die();
}
// For More security
// Retro compatibilité SABLE
if (!function_exists("sql_connect")) {
include ("modules/$ModPath/retro-compat/mysql.php");
}
// Retro compatibilité SABLE''

Script servant à la réalisation d’un BLOC NPDS

Au début de chaque fichier PHP (après le cartouche de commentaires décrivant le module, licence, …) il est nécessaire de rajouter :

// For More security
if (!function_exists("Mysql_Connection")) {
die();
}
// For More security
// Retro compatibilité SABLE
if (!function_exists("sql_connect")) {
include ("modules/$ModPath/retro-compat/mysql.php");
}
// Retro compatibilité SABLE

:!:Plus généralement tous fichier PHP contenu dans un module (à l’exclusion d’un fichier de paramétrage,d’installation) contenant l’utilisation de variables global de NPDS (par exemple $ModStart, $ModPath, $language, …) doit être sécurisé !

Index


Utilisateur

Vous n'ètes pas identifié. Vous pouvez vous inscrire ou vous connecter.



Page