Les Allergies
Alimentaires
Posez votre question Signaler

ASP:pb requete sql

titie 9Messages postés 23 novembre 2002Date d'inscription - Dernière réponse le 28 janv. 2003 à 14:19
Bonjour,

J ai un probleme de récupération de données provenant d un cookie.
La syntaxe pour récupérer le cookie est correcte(j ai bien vérifiée, ce cookie me retourne la bonne variable).
Je pense que ma requete sql est incorrecte. Je voudrais donc insérer dans celle-ci une donnée.
J ai crée une connexion avec dsn à une base access ayant comme nom "Infos".
Ma table "ALARM" parmis les differents champs, celui sur lequel la recherche est effectuée est "mdp". Et je voudrais comptabiliser le nombre d element de la table pour une variable donnée grace au cookie.

Voici le code :
<% Set conn = Server.CreateObject("ADODB.Connection")
conn.open "Infos"
dim rsCount
Set rsCount=conn.Execute("SELECT COUNT(*) FROM ALARM WHERE mdp = " & request.cookies("pwd") )
Response.Write "il y a " & rsCount(0) & "."%>

Merci d avance !!!
Lire la suite 

ASP:pb requete sql »

7 réponses
Réponse
+1
moins plus
(je ne vais pas répondre à ta question, mais:)
Je peux hurler ?

YYYYYYYOOOOAAAAAAAAA!!!!!!
Faille de sécurité !

Tu balance le contenu du cookie dans la requête SQL sans filtrer ? Danger !

Imagine que je mette ça dans le cookie: ''; DELETE ALARM
Ta page ASP va exécuter la requête suivante:
SELECT COUNT(*) FROM ALARM WHERE mdp = ''; DELETE ALARM
Et hop... pour peut que le user SQL ait les droits d'écriture, je te vide ta table.

Je te conseille:
1) de quoter proprement ton cookie dans la chaîne SQL:
Remplace "SELECT COUNT(*) FROM ALARM WHERE mdp = " & request.cookies("pwd")
Par "SELECT COUNT(*) FROM ALARM WHERE mdp = '" & request.cookies("pwd") &"'"

2) de doubler toute simple-quote trouvée dans le cookie ( ' --> '').
(je ne sais plus la syntaxe en ASP: replace ? sub ?):
Remplacer request.cookies("pwd")
Par request.cookies("pwd").sub("'","''")
titie- 28 janv. 2003 à 13:53
Je te remercie beaucoup du conseil car je n avais pas pense au probleme de destruction de table.
Mais, la requete ne fonctionne toujours pas lorsque je remplace par ta solution, il y a l erreur "Erreur d'exécution Microsoft VBScript erreur '800a000d'
Type incompatible" qui apparait.
titie- 28 janv. 2003 à 14:00
Ca y est ca fonctionne !
Merci beaucoup !!!
Ajouter un commentaire
Réponse
+0
moins plus
Salut,
A priori tu cherches a compter les mots de passe identique...
En "pur" SQL il te faut mettre un nom de champ a la place de ton etoile et finir ta requete par un Group By mdp si ma memoire est bonne...

.  .
\_/
Ajouter un commentaire
Réponse
+0
moins plus
Tout juste.
Pour connaitre la syntaxe exacte, tu peux faire une petite requête sous Access.

Attention aussi que ton cookie contient certainement du texte, dès lors, du devrais l'encadrer de quotes

Salutations,

Krizniak
Ajouter un commentaire
Réponse
+0
moins plus
Encore un conseil de sécurité (A l'image de ce qui s'est passé ce week-end avec l'attaque massive de serveurs SQL):

Il ne faut jamais avoir un serveur SQL accessible de l'extérieur.
Seul ton serveur Web doit avoir accès au serveur SQL.
Ajouter un commentaire
Réponse
+0
moins plus
Merci de tes conseils de grand sage !
;-)
Ajouter un commentaire
Ce document intitulé « ASP:pb requete sql » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?