Il est simple de développer le site Web ASP avec Dreamweaver. Il n'y a donc aucune différence entre les novices et les anciens combattants? La différence est grande, mais il est difficile pour le profane de voir en un coup d'œil. L'amitié, les performances opérationnelles et la sécurité du site Web de l'interface sont les trois points de concentration différents des novices et des anciens combattants.
En termes de sécurité, le problème le plus simple des novices est le problème des vulnérabilités injectées par SQL. Utilisez NBSI 2.0 pour scanner certains sites Web ASP sur Internet, et vous pouvez constater que de nombreux sites Web ASP ont des vulnérabilités d'injection SQL.
L'injection SQL SO (injection SQL) consiste à utiliser les lacunes des données d'entrée du programmeur aux données d'entrée de l'utilisateur, qui utilise les lacunes telles que la détection inadéquate ou non.
On peut voir que la raison principale de l'injection de SQL d'attaques ne vérifie pas les données saisies par l'utilisateur.
La demande générale HTTP n'est rien de plus que d'obtenir et de publier, donc tant que nous filtrons toutes les informations des paramètres de tous les messages ou obtenons des demandes dans le programme, nous pouvons empêcher les attaques d'injection SQL.
Malheureusement, DW ne fournit pas de code pertinent, donc si vous souhaitez empêcher l'attaque de type d'injection SQL, vous devez le modifier.
Enregistrez simplement le programme suivant sous SQLinjection.asp, puis appelez l'en-tête des pages qui doivent être injectées.
<! - # Inclure file = sqlinjection.asp->
Vous pouvez faire l'injection de défense de page.
Si vous souhaitez vous référer à toute la station, ajoutez des appels de tête ou ajoutez directement le code de programme suivant dans le fichier de connexion de la base de données générés par la connexion générée par DW. Fichier de connexion de la base de données.
Code du programme général (cité sur Internet pour apporter les modifications appropriées) comme suit:
<%
'--------- Pièces de définition -------------------
DIM SQL_INJDATA
SQL_INJDATA = '|
| Met à jour | *% |
| Déclarer | 1 = 1 | 1 = 2 |;
SQL_INJ = Split (SQL_INJDATA, | | |
'-----------------------------
Si request.querystring <> alors
Pour chaque SQL_GET dans demande.Querystring
Pour sql_data = 0 à Ubound (sql_inj)
Si instir (request.querystring (sql_get),
Sql_inj (sql_data))> 0 alors
Réponse.Write <Script Language = JavaScript>
Alert ('Système vous rappelle! / N / N, veuillez ne pas essayer des caractères illégaux dans le paramètre pour essayer l'injection! / N / n');
Réponse.
terminer si
suivant
Suivant
Terminer si
'-------- Obtenez des pièces ---------------------
Si demande.form <> alors
Pour chaque SQL_POST dans demande.form
Pour sql_data = 0 à Ubound (sql_inj)
Si instlin (request.form (sql_post), sql_inj (sql_data))> 0 alors
Réponse.Write <Script Language = JavaScript>
Alert ('Système vous rappelle! / N / N, veuillez ne pas essayer des caractères illégaux dans le paramètre pour essayer l'injection! / N / n');
Réponse.
terminer si
suivant
suivant
terminer si
%>
Grâce au programme ci-dessus, le caractère d'injection de danger SQL soumis à partir de la méthode GET ou de la méthode post peut être réalisé, et les envahisseurs sont avertis de se tourner vers Index.htm (page d'accueil).