المؤلف: Taote.com
المصدر: Taote.com
ملاحظة: يرجى الإشارة إلى المصدر عند إعادة الطباعة
لمنع إدخال SQL. عادةً، لا يكون تعديل الملفات واحدًا تلو الآخر أمرًا مزعجًا فحسب، بل قد يؤدي إلى فقدانه أيضًا نظام.
باتباع الخطوات الثلاث التالية، أعتقد أن البرنامج سيكون أكثر أمانًا وستصبح صيانة الموقع بأكمله أسهل.
1. فئة التحقق من البيانات:
بارامتراتشيك.cs
فحص معلمة الطبقة العامة {
المنطق المنطقي العام الثابت هو البريد الإلكتروني (سلسلة البريد الإلكتروني سلسلة) {
إرجاع System.Text.RegularExpressions.Regex.IsMatch(emailString, "['\w_-]+( \.['\w_-]+)*@['\w_-]+(\.[ '\w_-]+)*\.[a-zA-Z]{2,4 }");
}
المنطق المنطقي العام الثابت هو Int(سلسلة intString){
return System.Text.RegularExpressions.Regex.IsMatch(intString ,"^( \d{5}-\d{4})|(\d{5})$ ");
}
المنطق المنطقي العام الثابت هوUSZip(string zipString){
return System.Text.RegularExpressions.Regex.IsMatch(zipString ,"^-[0-9]+$|^[0-9]+$");
}
}
2. Web.config
في ملف Web.config الخاص بك، أضف علامة ضمن <appSettings>: كما يلي
<appSettings>
<add key="safeParameters" value="OrderID-int32,CustomerEmail-email,ShippingZipcode-USzip" />
</appSettings>
حيث المفتاح هو <saveParameters> والقيمة التالية هي "OrderId-int32"، وما إلى ذلك، حيث يمثل "-" في المقدمة اسم المعلمة، مثل: OrderId، ويمثل int32 التالي البيانات يكتب.
3. Global.asax
أضف الفقرة التالية إلى Global.asax:
محمي باطل Application_BeginRequest(Object sender, EventArgs e){
String[]safeParameters = System.Configuration.ConfigurationSettings.AppSettings["safeParameters"].ToString().Split(',');
for(int i= 0;i <safeParameters.Length; i++){
StringparameterName =safeParameters[i].Split('-')[0];
StringparameterType =safeParameters[i].Split('-')[1];
isValidParameter(parameterName,parameterType);
}
}
الفراغ العام isValidParameter (اسم معلمة السلسلة، نوع معلمة السلسلة) {
stringparameterValue = Request.QueryString[parameterName];
if(parameterValue == null) return
if(parameterType.Equals("int32")){
if(!parameterCheck.isInt(parameterValue)) Response.Redirect("parameterError.aspx");
}
وإلا إذا (parameterType.Equals("double")){
if(!parameterCheck.isDouble(parameterValue)) Response.Redirect("parameterError.aspx");
}
وإلا إذا (parameterType.Equals("USzip")){
if(!parameterCheck.isUSZip(parameterValue)) Response.Redirect("parameterError.aspx");
}
وإلا إذا (parameterType.Equals("email")){
if(!parameterCheck.isEmail(parameterValue)) Response.Redirect("parameterError.aspx");
}
}
عندما تكون هناك حاجة إلى تعديلات في المستقبل، نحتاج فقط إلى تعديل الملفات الثلاثة المذكورة أعلاه، مما سيؤدي إلى تحسين كفاءة صيانة النظام بأكمله بشكل كبير. بالطبع، يمكنك إضافة معلمات متغيرة وأنواع بيانات أخرى وفقًا لاحتياجاتك الخاصة.