2010-02-02 4 views
2

Dans le nom de table mysql (user_login) et j'ai ayant comme nom de connexion et mot de passe. Je suis entré dans login_name comme abc et mot de passe/'(symboles spéciaux comme \/«) .Et ma requête estproblème avec mysql requête lorsque mot de passe comme /'

mot de passe select de USER_LOGIN où mot de passe comme «/» » et je me suis erreur SQL syntaxe

Répondre

6

Vous devez utiliser des requêtes paramétrées dans n'importe quel langage dans lequel vous implémentez l'appel. Méfiez-vous SQL Injection attack

+0

donnez des exemples – vsr

+0

Vous ne spécifiez pas le langage de programmation que vous utilisez. En outre, vérifiez le lien là-bas, il comprend des exemples dans plusieurs langues. –

0

Si vous utilisez jamais comme dans un système de connexion que vous avez jeté toute la sécurité par la fenêtre. Essayez ceci sur votre connexion pour voir ce que je veux dire:

Nom d'utilisateur:%

Mot de passe:%

ACCÈS POUR PREMIER UTILISATEUR ACCORDÉE DANS LA BASE. (Prière que ce ne soit pas un administrateur)

Si le nom d'utilisateur est connu alors% comme mot de passe donnera un accès complet. Si vous voulez un système plus convivial qui n'est pas sensible à la casse (oui, cela réduit le nombre de mots de passe possibles, mais est probablement approprié pour les noms d'utilisateur), puis forcer le casse (ou supérieur ou ucwords ou ce que vous préférez) N'utilisez PAS l'opérateur LIKE dans TOUTES QUESTIONS impliquant une connexion ou une entrée d'utilisateur non filtrée (telles que des zones de recherche). À chaque fois que vous devez utiliser l'opérateur LIKE, VEILLEZ À ÉLIMINER OU ÉVACUER MANUELLEMENT% et _ (et si vous utilisez MS SQL, alors échappez à tous les opérateurs REGEX aussi - []^$() *.). Un grand nombre de fonctions d'échappement pour mysql n'échapperont pas aux caractères% _, ce qui - lorsqu'il est utilisé avec LIKE - permet à n'importe quel visiteur de faire des recherches génériques (peut sérieusement ralentir le serveur et causer des problèmes de DoS) se priver de privilèges en utilisant%:% pour se connecter.