Attention. Ce code n'est pas vraiment une astuce. Il utlilise toutes les ressources du server SQL, le ralentit jusqu'au plantage (si le serveur est peut puissant). IL NE FAUT DONC PAS LANCER CE CODE (sauf pour le tester si ça vous plait)
Il est la à but informatif. Pourquoi ? tout simplement pour les audits. Si vous trouvez ce genre de code dans les log(victime d'SQL injection)
vous saurez qu'il faut vite patcher ça.
Sinon, juste pour l'idée de l'insert Select en boucle, je trouvais ça rigolo.
Aucune utilité (sauf l'audit et la connaissance)
Source / Exemple :
create table #myTmpTable
(champ1 varchar)
exec('insert into #myTmpTable select ''X''')
while 1=1 exec('insert into #myTmpTable select * from #myTmpTable')
26 nov. 2007 à 09:10
7 oct. 2004 à 13:36
En effet, j'ai longement réfléchi avant de mettre ce bout de source. Pour finir, j'ai décider de la mettre mais je ne sais toujours pas si c'est très utile.
J'espèrais surtout générer une prisede conscience de la part des developpeurs.
7 oct. 2004 à 13:33
Une autre technique, est d'utiliser un utilisateur qui n'a pas le droit de création d'une table (ou qui n'a pas le droit d'insert). Cette methode est vraiment discutable car en effet, la requête ci-dessus ne fonctionnera pas, mais si un utilisateur peut injecter du code SQL, il peut de toute façon corrompre le serveur.
Les faille de SQL injection sont très très très grâve sur un site ou une application.
Un audit intensif des logs + du code + la création d'un utilisateur avec les droits minimums permettent déjà d'empêcher un massacre.
Alors à vos sources ;-)
7 oct. 2004 à 10:50
Ta source pour le moment peut être considérer comme dangereuse sans cet ajout, et dans ce cas peut être ammené à être désactivée.
Romelard Fabrice.
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.