Récemment, en raison de la modification d'un programme ASP (qui présente une vulnérabilité d'injection SQL), j'ai trouvé de nombreuses méthodes de prévention associées sur Internet, mais aucune d'entre elles n'était satisfaisante. J'ai donc complètement amélioré certaines méthodes sur Internet et j'ai écrit ceci. Fonction ASP. Pour votre référence.
Voici une citation :
Fonction SafeRequest (ParaName)
Dim ParaValeur
ParaValue=Demande (ParaName)
si IsNumeric(ParaValue) = True alors
SafeRequest=ParaValue
Fonction de sortie
elseIf Instr(LCase(ParaValue),"select ") > 0 ou Instr(LCase(ParaValue),"insert") > 0 ou Instr(LCase(ParaValue),"delete from") > 0 ou Instr(LCase(ParaValue) ,"count(") > 0 ou Instr(LCase(ParaValue),"drop table") > 0 ou Instr(LCase(ParaValue),"update ") > 0 ou Instr(LCase(ParaValue),"truncate ") > 0 ou Instr(LCase(ParaValue),"asc(") > 0 ou Instr(LCase(ParaValue),"mid(") > 0 ou Instr(LCase(ParaValue),"char(") > 0 ou Instr(LCase (ParaValue),"xp_cmdshell") > 0 ou Instr(LCase(ParaValue),"exec master") > 0 ou Instr(LCase(ParaValue),"administrateurs de groupes locaux nets") > 0 ou Instr(LCase(ParaValue)," et ") > 0 ou Instr(LCase(ParaValue),"net user") > 0 ou Instr(LCase(ParaValue)," ou ") > 0 alors
Réponse.Écrivez "<script language='javascript'>"
Response.Write "alert('Illegal request!');" 'Message d'invite d'attaque par injection SQL trouvé
Response.Write "location.href='http://blog.downcodes.com/';" 'URL de redirection d'attaque par injection SQL trouvée
Réponse.Écrivez "<script>"
Réponse.end
autre
SafeRequest=ParaValue
Fin si
La fonction End
remplace votre requête par la fonction SafeRequest