Cet article étudie principalement une question relativement courante dans les questions d'entrevue Java et les questions de jugement et de prévention de l'injection de SQL. Les détails sont les suivants.
L'injection SQL est actuellement la méthode d'attaque la plus couramment utilisée pour les pirates. Son principe est d'utiliser la base de données pour analyser les identifiants spéciaux pour les passer de force de la page à l'arrière-plan. Modifier la structure de l'instruction SQL, obtenir des autorisations étendues, créer des utilisateurs de haut niveau, modifier de force les informations utilisateur et d'autres opérations.
Grâce au principe de l'injection SQL, nous savons que juger les données selon lesquelles l'injection de SQL peut être transmise par la page, l'arrière-plan ne devrait pas croire aux données transmises de l'arrière-plan, en particulier des paramètres entiers spéciaux et des paramètres de caractère spéciaux!
1. Vérifiez le type et le format de données variables
Tant qu'il s'agit d'une variable dans un format fixe, avant que l'instruction SQL ne soit exécutée, elle doit être strictement vérifiée dans le format fixe pour s'assurer que la variable est le format que nous attendions!
2. Filtre Symboles spéciaux
Pour les variables qui ne peuvent pas être déterminées dans un format fixe, des symboles spéciaux doivent être utilisés pour les traiter ou les transférer. Il y a une ambiguïté dans SQL.
Lorsque nous téléchargeons des photos
ENCTYPE = / ”Multipart / Form-Data /” EncType = ”Multipart / Form-Data”
Sans "/", l'ENCTYPE = "Multipart / Form-Data" sous la forme signifie définir le codage MIME de la forme. Par défaut, ce format de codage est Application / X-WWW-Form-Urlencoded, qui ne peut pas être utilisé pour le téléchargement de fichiers; Ce n'est qu'en utilisant des données multiparts / formulaires que les données de fichier peuvent être complètement transmises et les opérations suivantes sont effectuées.
3. Bind Variables et utiliser des instructions précompilées
En fait, l'utilisation de instructions précompilées pour lier les variables est le meilleur moyen d'empêcher l'injection SQL, et la sémantique de l'utilisation d'instructions SQL précompilées ne changera pas. Dans les instructions SQL, utilisez un point d'interrogation pour les variables? Cela signifie que peu importe à quel point un pirate est capable, il ne peut pas modifier le format des déclarations SQL et empêche fondamentalement la survenue d'attaques d'injection SQL.
4. Sécurité du chiffrement des informations sur la base de données
Parfois, lorsque les informations de base de données sont divulguées, nous devons crypter le mot de passe de la base de données et d'autres informations (MD5, etc.), afin que les informations soient divulguées et que les pertes puissent être contrôlées dans une certaine plage.
1. N'ouvrez pas un environnement de production pour résumer l'affichage d'erreur du serveur Web.
2. Ne croyez jamais à l'entrée variable du côté utilisateur. Les variables avec des formats fixes doivent être strictement vérifiées. Les variables sans formats fixes doivent effectuer le filtrage nécessaire et échapper aux caractères spéciaux tels que des citations.
3. Utilisez des instructions SQL précompilées qui lient les variables
4. Faites du bon travail dans la gestion de la permission du compte de base de données
5. Connaissant et traiter strictement les informations confidentielles des utilisateurs
Un bon programme doit prêter attention à la sécurité, sinon il ne convient que pour la pratique.
Ce qui précède est tout le contenu de cet article sur l'analyse des questions d'entrevue Java et la prévention de l'injection SQL. J'espère que ce sera utile à tout le monde. Les amis intéressés peuvent continuer à se référer à d'autres sujets connexes sur ce site. S'il y a des lacunes, veuillez laisser un message pour le signaler. Merci vos amis pour votre soutien pour ce site!