ASP:pb requete sql

Fermé
titie Messages postés 9 Date d'inscription samedi 23 novembre 2002 Statut Membre Dernière intervention 13 février 2003 - 28 janv. 2003 à 11:23
titie Messages postés 9 Date d'inscription samedi 23 novembre 2002 Statut Membre Dernière intervention 13 février 2003 - 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 !!!
A voir également:

5 réponses

sebsauvage Messages postés 32893 Date d'inscription mercredi 29 août 2001 Statut Modérateur Dernière intervention 21 octobre 2019 15 659
28 janv. 2003 à 11:31
(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 Date d'inscription samedi 23 novembre 2002 Statut Membre Dernière intervention 13 février 2003
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.
0
titie Messages postés 9 Date d'inscription samedi 23 novembre 2002 Statut Membre Dernière intervention 13 février 2003
28 janv. 2003 à 14:00
Ca y est ca fonctionne !
Merci beaucoup !!!
0
teebo Messages postés 33491 Date d'inscription jeudi 14 octobre 2004 Statut Modérateur Dernière intervention 24 février 2011 1 793
28 janv. 2003 à 11:28
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 Date d'inscription lundi 27 janvier 2003 Statut Membre Dernière intervention 10 février 2003 4
28 janv. 2003 à 11:31
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 32893 Date d'inscription mercredi 29 août 2001 Statut Modérateur Dernière intervention 21 octobre 2019 15 659
28 janv. 2003 à 14:04
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 Date d'inscription samedi 23 novembre 2002 Statut Membre Dernière intervention 13 février 2003
28 janv. 2003 à 14:19
Merci de tes conseils de grand sage !
;-)
0