Bonjour
J'ai lu quelques articles sur l'injection de code SQL.
J'ai commencer a filtrer le contenu de tout les champs de saisi transmit vers le serveur.
J’ai entrepris de faire une simulation en utilisant le query analyzer avant de faire le test depuis un environnement web.
Voici le code que j'ai testé.
Je soumets une requête en utilisant une procédure stockée.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
exec SP_Test 'AAA@hotmail.com'
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
 
CREATE PROCEDURE [dbo].[SP_Test] 
@AdresseCourriel varchar(75)
 
AS
		--Vérifi si le compte a été activé
IF (SELECT   Activation FROM  TBL_Activation  WHERE (AdresseCourriel = @AdresseCourriel )) = 1
 
  BEGIN
	SELECT 'Flag'='true'
  END
ELSE --Si le compte na pas été activé
  BEGIN
      SELECT 'flag'='false' ,'test'=@AdresseCourriel 
  END
GO
Ce que je voulais faire c'est de remplacer la fin du SELECT avec les instructions passé a la variable @AdresseCourriel
En modifiant l'appel de la procédure comme sui j'aurais cru avoir le même résultat.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
exec SP_Test 'AAA@hotmail.com)) = 1 --'
Mais dans ce cas FLAG = FALSE

Dois-je comprendre qu’en utilisant une procédure stockée l’injection de code ne fonctionne pas ? ou que ma tentative d'injection est mal écrite?

Merci pour vos suggestion et commentaire