Auteur : Taote.com
Source : Taote.com
Remarque : Veuillez indiquer la source lors de la réimpression
pour éviter l'injection SQL. Habituellement, modifier les fichiers un par un est non seulement gênant, mais risque également de manquer. système.
En suivant les trois étapes suivantes, je pense que le programme sera plus sûr et que la maintenance de l'ensemble du site Web deviendra plus simple.
1. Catégorie de vérification des données :
paramètreCheck.cs
paramètre de classe publiqueCheck{
public static bool isEmail(string emailString){
return System.Text.RegularExpressions.Regex.IsMatch(emailString, "['\w_-]+( \.['\w_]+)*@['\w_-]+(\.[ '\w_-]+)*\.[a-zA-Z]{2,4 }");
}
public static bool isInt(string intString){
return System.Text.RegularExpressions.Regex.IsMatch(intString ,"^( \d{5}-\d{4})|(\d{5})$ ");
}
public static bool isUSZip(string zipString){
return System.Text.RegularExpressions.Regex.IsMatch(zipString ,"^-[0-9]+$|^[0-9]+$");
}
}
2. Web.config
Dans votre fichier Web.config, ajoutez une balise sous <appSettings> : comme suit
<appSettings>
<add key="safeParameters" value="OrderID-int32,CustomerEmail-email,ShippingZipcode-USzip" />
</appSettings>
où la clé est <saveParameters> et la valeur suivante est "OrderId-int32", etc., où "-" devant représente le nom du paramètre, tel que : OrderId, et le int32 suivant représente les données taper.
3. Global.asax
Ajoutez le paragraphe suivant à Global.asax :
protected void Application_BeginRequest (Expéditeur d'objet, EventArgs e){
String[] safeParameters = System.Configuration.ConfigurationSettings.AppSettings["safeParameters"].ToString().Split(',');
pour(int i= 0;i < safeParameters.Length; i++){
String paramètreName = safeParameters[i].Split('-')[0];
String ParameterType = safeParameters[i].Split('-')[1];
isValidParameter (nom du paramètre, type du paramètre);
}
}
public void isValidParameter (nom du paramètre de chaîne, type de paramètre de chaîne) {
string paramètreValue = Request.QueryString[parameterName];
if(parameterValue == null) return;
if(parameterType.Equals("int32")){
if(!parameterCheck.isInt(parameterValue)) Response.Redirect("parameterError.aspx");
}
sinon if (parameterType.Equals("double")){
if(!parameterCheck.isDouble(parameterValue)) Response.Redirect("parameterError.aspx");
}
sinon if (parameterType.Equals("USzip")){
if(!parameterCheck.isUSZip(parameterValue)) Response.Redirect("parameterError.aspx");
}
sinon if (parameterType.Equals("email")){
if(!parameterCheck.isEmail(parameterValue)) Response.Redirect("parameterError.aspx");
}
}
Lorsque des modifications sont nécessaires à l'avenir, il nous suffit de modifier les trois fichiers ci-dessus, ce qui améliorera considérablement l'efficacité de la maintenance de l'ensemble du système. Bien entendu, vous pouvez ajouter d'autres paramètres variables et types de données en fonction de vos propres besoins.