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
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...
Hors ligne
he bien le fonctionnement de mes nouvelles pages étant exactement le meme que pour Additional Pages j'ai reprit la meme structure
// 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