Comment PHPBB sécurise les requêtes SQL ?

Consultez la formation au référencement naturel Google de WebRankInfo / Ranking Metrics

vin-moi
WRInaute impliqué
WRInaute impliqué
 
Messages: 391
Inscription: Lun Nov 22, 2004 18:13

Comment PHPBB sécurise les requêtes SQL ?

Message le Mar Déc 06, 2005 19:36

salut à tous :)

voilà je voudrais savoir comment sont sécurisée les requetes sql sur PHPBB.

Je m'explique : je voudrais creer une fonction du meme genre que celle de PHPBB permettant de "préparer" des chaines de caractères envoyée par méthode POST par les visiteurs.

sur phpbb je vois ca :

$html_entities_match = array('#&(?!(\#[0-9]+;))#', '#<#', '#>#');
$html_entities_replace = array('&amp;', '&lt;', '&gt;');

function prepare_post(blablabla)
{
$message = preg_replace($html_entities_match, $html_entities_replace, $message);
}

et après il l'utilise comme ca :

$message = prepare_message(trim($message)

et je crois que c'est tout :S

je voudrais savoir si ca, ca me suffit pour les visiteurs qui envoie des données via un formulaire , c'est sécurisé niveau injection sql ?

parce sur phpbb j'ai pas vu de mysql_real_escape_string ou de htmlentities :p

aussi, assez souvent, j'ai des truc de genre "select blabla where id=$id" (par exemple).

je voudrais savoir si ca a de l'importe de mettre des guillements simple autour de $id et si, dans ce cas, une verification avec is_numeric() suffit à sécuriser totalement ce genre de requete ?

une dernière question :

quelle est la différence entre :

if($var != NULL)
if(isset($var))
if(!empty($var))

?? sachant que je veux vérifier si des données pasé dans l'url ou par formulaire sont bien "remplie" :)

voilà, c'est a peu près tout :).

en gros je cherche à sécuriser mes requete sql, et à avoir plus d'info sur isset, empty et !=NULL :)
merci d'avance !!

vin-moi
WRInaute impliqué
WRInaute impliqué
 
Messages: 391
Inscription: Lun Nov 22, 2004 18:13

Message le Mar Déc 06, 2005 21:48

pour vous expliquer concretement la situation, nous sommes entrain de refaire completement notre site, et nous envisageons dans quelques mois de changer d'hebergeur.

un des "hic" est que l'hebergeuer actuel a mis à of les magic_quote contraire à notre potentiel future hebergeur (celeonet).

donc voilà ce que je pensait faire :

# Pour les requete par "id" :

j'ai une url du genre article.php?id=15

avec une requete du genre : select * from table where id=$id .

est ce que faire :

if(ctype_digit($id))
{
requete sql ...
}

C'est suffisant dans ce cas ?

# Pour une requete qui insere/modifie des chaine de caractères proposée par les visiteurs :

function prepare_message($var)
{
$html_entities_match = array('#&(?!(\#[0-9]+Wink)#', '#<#', '#>#');
$html_entities_replace = array('&amp;', '&lt;', '&gt;');

$message = preg_replace($html_entities_match, $html_entities_replace, $var);

return $message;
}

function securisation($var)
{
if( !get_magic_quotes_gpc() )
{
$message = mysql_real_escape_string($message);
}

return $message;
}


et enfin :

$message = prepare_message(securisation($message));

mysql = insert into table value("$message)


pensez vous que c'est suffisant niveau sécurité ca ?

merci d'avance !

vin-moi
WRInaute impliqué
WRInaute impliqué
 
Messages: 391
Inscription: Lun Nov 22, 2004 18:13

Message le Mer Déc 07, 2005 11:43

up :lol:


Formation recommandée sur ce thème :

Formation Référencement naturel Google : apprenez une méthode efficace pour optimiser à fond le référencement naturel dans Google de façon durable... Formation animée par Olivier Duffez et Fabien Facériès, experts en référencement naturel.

Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités