Cela peut être une question vraiment bête mais je ne comprends pas pourquoi ...Potentiel d'injection SQL ici?
J'utilise RIA Services avec Entity Framework comme backend. J'ai quelques endroits dans mon application où j'accepte l'entrée de l'utilisateur et demande directement à RIA Services (et à tour de rôle EF et à mon tour ma base de données) des questions en utilisant leurs données. Est-ce que l'une de ces couches aide à prévenir les problèmes de sécurité ou devrais-je nettoyer mes données moi-même?
Par exemple, chaque fois qu'un nouveau registre utilisateur avec l'application, j'appelle cette méthode:
[Query]
public IEnumerable<EmailVerificationResult> VerifyUserWithEmailToken(string token)
{
using (UserService userService = new UserService())
{
// token came straight from the user, am I in trouble here passing it directly into
// my DomainService, should I verify the data here (or in UserService)?
User user = userService.GetUserByEmailVerificationToken(token);
...
}
}
(et si je devrais rouler mon propre système de vérification de l'utilisateur est une autre question tout à fait, nous sommes dans le processus (Je suis plus intéressé par l'injection SQL et les services RIA en général)
Vous devez TOUJOURS scrub les requêtes de base de données, peu importe d'où elles proviennent. Il y a des manières très intéressantes de faire de l'injection SQL là où le programmeur ne s'attendait pas à l'être. Et l'effleurement d'entrée ne consomme pas de ressources du tout. – TheLQ
sûrement pas si la bibliothèque/framework les nettoie déjà? sinon, vous pourriez obtenir des données incorrectes (par exemple des données à double échappement). – oedo