ASP:pb requete sql

titie Messages postés 9 Statut Membre -  
titie Messages postés 9 Statut Membre -
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 !!!
A voir également:

5 réponses

sebsauvage Messages postés 33415 Statut Modérateur 15 667
 
(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("'","''")
1
titie Messages postés 9 Statut Membre
 
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.
0
titie Messages postés 9 Statut Membre
 
Ca y est ca fonctionne !
Merci beaucoup !!!
0
teebo Messages postés 33570 Date d'inscription   Statut Modérateur Dernière intervention   1 793
 
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...

.  .
\_/
0
Krizniak Messages postés 26 Statut Membre 4
 
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
0
sebsauvage Messages postés 33415 Statut Modérateur 15 667
 
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.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
titie Messages postés 9 Statut Membre
 
Merci de tes conseils de grand sage !
;-)
0