Annonce

  •  » Plugins
  •  » Sécurisation des requêtes SQL

#1 2010-07-28 16:36:09

mistic100
Ex Equipe Piwigo
Lyon
2008-09-27
3561

Sécurisation des requêtes SQL

Hiho,
je vais distribuer mon plugin de gestion de concours (en action ici) et j'ai une question sur les requêtes SQL (ca va plus vite de demander que de décortiquer le code) :

il y a des fonctions propres à piwigo visant à permettre l'interopérabilité MySQL, Postgre.... mais est-ce que ces même fonctions protègent automatiquement les requêtes contre les injections SQL ?
d'ailleurs les seuls paramètres que j'utilise dans mes requêtes sont les "$tokens", est-il nécessaire de les protéger ou est-ce que c'est déjà filtré en amont ?


un petite question HS : j'ai deux projets de plugins :
- la possibilité de commenter des catégories
- permettre de changer l'ordre de tri par défaut sur les catégories spéciales (genre par date sur la page des tags alors que le reste de la galerie est triée par nom)

pensez-vous que je trouverais preneur ?

Hors ligne

#2 2010-07-28 17:43:28

P@t
Équipe Piwigo
Nice
2007-06-13
5695

Re: Sécurisation des requêtes SQL

mistic100 a écrit:

il y a des fonctions propres à piwigo visant à permettre l'interopérabilité MySQL, Postgre.... mais est-ce que ces même fonctions protègent automatiquement les requêtes contre les injections SQL ?

Si get_magic_quotes_gpc est désactivé, alors, un bout de code au début du common.inc.php (ligne 37) permet de sécuriser les données pasées en $_POST, $_GET ou $_COOKIE:

if( !@get_magic_quotes_gpc() )
{
  function sanitize_mysql_kv(&$v, $k)
  {
    $v = addslashes($v);
  }
  if( is_array( $_GET ) )
  {
    array_walk_recursive( $_GET, 'sanitize_mysql_kv' );
  }
  if( is_array( $_POST ) )
  {
    array_walk_recursive( $_POST, 'sanitize_mysql_kv' );
  }
  if( is_array( $_COOKIE ) )
  {
    array_walk_recursive( $_COOKIE, 'sanitize_mysql_kv' );
  }
}

mistic100 a écrit:

d'ailleurs les seuls paramètres que j'utilise dans mes requêtes sont les "$tokens", est-il nécessaire de les protéger ou est-ce que c'est déjà filtré en amont ?

C'est quoi que tu appelles token? Les paramètres traités dans section_init.inc.php?
A priori, il faut plutot utiliser les données renvoyées par section_init...

mistic100 a écrit:

un petite question HS : j'ai deux projets de plugins :
- la possibilité de commenter des catégories
- permettre de changer l'ordre de tri par défaut sur les catégories spéciales (genre par date sur la page des tags alors que le reste de la galerie est triée par nom)

pensez-vous que je trouverais preneur ?

Si tu en as besoin, fait les! Ca va surement interesser du monde...
A mon avis, le premier plugin requiert plus de boulot que le second...


P@t

Hors ligne

#3 2010-07-28 17:49:02

mistic100
Ex Equipe Piwigo
Lyon
2008-09-27
3561

Re: Sécurisation des requêtes SQL

he bien le fonctionnement de mes nouvelles pages étant exactement le meme que pour Additional Pages j'ai reprit la meme structure

Code:

// Paramètre URL
function CR_section_init(){
    global $tokens, $page;
  load_language('plugin.lang', CR_PATH);
    if($tokens[0] == 'contests'){
    $page['section'] = 'contests';
    $page['title'] = l10n('Contests');
    if(isset($tokens[1]) AND $tokens[1]){
      $page['contest'] = explode('-', $tokens[1]);
      $page['contest'] = $page['contest'][0];
      $page['title'] .= trigger_event('render_CR_content', get_contest_name($page['contest']));
    }
  }
}

// Contenu du la page
function CR_index(){
    global $template, $page, $conf;
    if(isset($page['section']) and $page['section'] == 'contests'){
    include(CR_PATH . 'include/functions.php');
    include(CR_PATH . 'contest_results.php');
  }
}

add_event_handler('loc_end_section_init', 'CR_section_init'); // Paramètre URL
add_event_handler('loc_end_index', 'CR_index'); // Contenu du la page

et j'utilise plus loin $page['contest'] (c'est à dire la première partie de $tokens[1]) dans des requêtes


en fait j'ai besoin du second plugin, l'autre j'en ai eu l'idée comme ça :D

Dernière modification par mistic100 (2010-07-28 17:50:25)

Hors ligne

  •  » Plugins
  •  » Sécurisation des requêtes SQL

Pied de page des forums

Propulsé par FluxBB

github twitter newsletter Faire un don Piwigo.org © 2002-2022 · Contact