Écrivez un programme général anti-injection ASP pour sélectionner le blog dans PH4Studio
Écrivez un programme anti-injection ASP commun pour les mots clés
Source
L'injection de SQL a été jouée par ces soi-disant pirates au niveau des novices. J'ai trouvé que la plupart des intrusions de pirates sont désormais basées sur l'injection SQL.
, Hélas, qui a rendu cela facile à démarrer? Ok, je ne parlerai plus de bêtises, maintenant je commence à dire si j'écris un programme général anti-injection SQL
Les demandes de HTTP générales ne sont rien de plus que d'obtenir et de publier, donc tant que nous filtrons toutes les informations sur les paramètres de publication ou de demande dans le fichier
Les caractères illégaux sont suffisants, nous pouvons donc utiliser le filtre d'informations de demande HTTP pour déterminer s'il est soumis à une attaque d'injection SQL.
IIS transmis à asp.dll est sous la forme d'une chaîne, lorsqu'elle est transmise pour requier.querystring data,
ASP Parser analysera les informations de la demande.Querystring, puis divisera les données dans chaque tableau selon "&"
Alors soyez intercepté comme suit
Tout d'abord, nous définissons que la demande ne peut pas contenir les caractères suivants
'| et | EXEC | INSERT | SELECT | DELETE | MISE À JOUR | COUNT | * |% | CHR | MID | MASTER | TRONCCATE | CHAR | DÉCLARD
Chaque caractère est séparé par "|", puis nous jugeons la demande.
Le code spécifique est le suivant
dimsql_injdata
SQL_INJDATA = "'| et | EXEC | INSERT | SELECT | DELETE | MISE À JOUR | COUNT | * |% | CHR | MID | MASTER | TRONCCATE | CHAR | Declare"
Sql_inj = split (sql_injdata, "|")
IfRequest.Querystring <> "" puis
Foreachsql_gettinrequest.querystring
Forsql_data = 0Toubound (sql_inj)
iFinstr (request.querystring (sql_get), sql_inj (sql_data))> 0The
Response.Write "<ScriptLanguage = ****> Alert ('Tianxia Movie Alliance SQL Invites Universal Anti-Injection System ↓ NNPLASE NE PAS inclure des caractères illégaux dans les paramètres et essayez d'injecter!'); History.back (-1) </cript>"
Réponse.
endire
suivant
Suivant
Endire
De cette façon, nous mettons en œuvre l'interception de l'injection de la demande de GET, mais nous devons également filtrer la demande de poste, nous devons donc continuer à considérer la demande.form, qui existe également sous la forme d'un tableau, nous devons seulement nous lancer dans la boucle pour faire des jugements. Le code est le suivant
Ifrequest.form <> "" puis
Foreachsql_postinRequest.form
Forsql_data = 0Toubound (sql_inj)
iFinstr (request.form (sql_post), sql_inj (sql_data))> 0THEN
Response.Write "<ScriptLanguage = ****> Alert ('Tianxia Movie Alliance SQL Invites Universal Anti-Injection System ↓ NNPLASE NE PAS inclure des caractères illégaux dans les paramètres et essayez d'injecter! Nnhttp: //www.521movie.com'); History.back (-1) </ script>"
Réponse.
endire
suivant
suivant
endire
OK, le travail est terminé, nous avons mis en œuvre l'interception d'informations des demandes GET et POST. Il vous suffit de référencer cette page avant d'ouvrir le fichier de base de données tels que Conn.asp. Continuez à développer votre programme en toute confiance, pas besoin de déterminer s'il sera toujours attaqué par l'injection SQL. N'est-ce pas?