2010-08-15 14 views
0

Si mon site est mis en ligne (ne le pensez pas, c'est juste un exercice d'apprentissage pour le moment).que puis-je faire de plus pour éviter l'injection XSS et l'injection SQL?

J'ai utilisé mysql_real_escape_string(); sur les données de POST, SERVER et GET. En outre, j'ai utilisé intval(); sur les chaînes qui doivent seulement être des nombres.

Je pense que cela me couvre de sql injection? Correct? Puis-je en faire plus?

Mais, je ne suis pas sûr comment il fournit (s'il fournit une protection du tout) de XSS injection?

De plus amples informations sur la façon de combattre ces deux formes d'attaques sont appréciées.

+2

Il est difficile de crois, mais vous pouvez obtenir près de 1000 réponses avec plus d'informations sur la façon de lutter contre ces deux formes d'attaques, si vous prenez la peine d'utiliser un champ de recherche en haut de cette page –

+0

merci pour cela –

Répondre

5

Je pense que cela me couvre de l'injection de sql? Correct?

Non. Cela fait un gâchis terrible de vos données.

Puis-je en faire plus?

Oui. Vous pouvez protéger votre code contre les injections SQL.
Voici a brief explanation I've made already
Seulement je dois ajouter que vous ne devriez pas gâcher vos tableaux de données sources.
Le tableau POST n'a rien à voir avec SQL. Les données peuvent aller dans le courrier électronique, un formulaire HTML, un fichier, un service en ligne, etc. Pourquoi traiter tout cela avec une protection SQL? Par contre, vous pouvez prendre vos données non pas à partir du POST mais à partir d'un fichier, d'un service en ligne, d'une autre requête.
Donc, vous devez protéger non bulleurs, mais des données réelles qui entre dans la requête

En parlant de XSS, il n'y a pas de règle universelle simple, encore une fois.
Mais en général, vous devez utiliser htmlspecialchars($data,ENT_QUOTES); pour les toutes les données non fiables vous sortie en tant que texte, et d'autres types de validations dans certains cas particuliers, comme les noms de fichiers

+0

merci pour cela! –

-1

occasion codés en dur des requêtes préparées