عند كتابة asp، نحتاج إلى الاهتمام بمعالجة السلاسل الخاصة لمنع استغلالها من قبل المتسللين. يجب على الأصدقاء الذين يستخدمون asp الرجوع إليه. انسخ رمز الكود كما يلي:
'===========================================================
'تحويل المحتوى لمنع وقوع الحوادث
'===========================================================
وظيفة Content_Encode(ByVal t0)
إذا كان IsNull(t0) أو Len(t0)=0 إذن
Content_Encode=
آخر
Content_Encode=استبدال(t0,<,<)
Content_Encode=استبدال(Content_Encode,>,>)
نهاية إذا
وظيفة النهاية
'===========================================================
"فك تحويل المحتوى."
'===========================================================
وظيفة Content_Decode (ByVal t0)
إذا كان IsNull(t0) أو Len(t0)=0 إذن
Content_Decode=
آخر
Content_Decode=استبدال(t0,<,<)
Content_Decode=استبدال(Content_Decode,>,>)
نهاية إذا
وظيفة النهاية
'===========================================================
"تصفية الشخصيات."
'===========================================================
نص مرشح الوظيفة (ByVal t0، ByVal t1)
إذا كان Len(t0)=0 أو IsNull(t0) أو IsArray(t0) ثم FilterText=:الخروج من الوظيفة
t0=تريم(t0)
حدد الحالة t1
الحالة 1
t0=استبدال(t0,Chr(32), )
t0=استبدال(t0,Chr(13,)
t0=استبدال(t0,Chr(10)&Chr(10),<br>)
t0=استبدال(t0,Chr(10),<br>)
الحالة 2
t0=Replace(t0,Chr(8),)'return
t0=Replace(t0,Chr(9),)'tab(حرف علامة التبويب الأفقي)
t0=Replace(t0,Chr(10),)'سطر جديد
t0=استبدال(t0,Chr(11),)'tab(علامة تبويب عمودية)
t0=Replace(t0,Chr(12),)'تغيير الصفحة
t0=Replace(t0,Chr(13),)' مزيج من حرف الإرجاع chr(13)&chr(10) بين حرف الإرجاع وتغذية السطر
t0=استبدال(t0,Chr(22,)
t0=Replace(t0,Chr(32),)'SPACE
t0=استبدال(t0,Chr(33),)'!
t0=استبدال(t0,Chr(34),)'
t0=استبدال(t0,Chr(35),)'#
t0=Replace(t0,Chr(36),)'$
t0=استبدال(t0,Chr(37),)'%
t0=استبدال(t0,Chr(38),)'&
t0=استبدال(t0,Chr(39),)''
t0=استبدال(t0,Chr(40),)'(
t0=استبدال(t0,Chr(41),)')
t0=استبدال(t0,Chr(42),)'*
t0=استبدال(t0,Chr(43),)'+
t0=استبدال(t0,Chr(44),)',
t0=استبدال(t0,Chr(45),)'-
t0=استبدال(t0,Chr(46),)'.
t0=استبدال(t0,Chr(47),)'/
t0=استبدال(t0,Chr(58),)':
t0=Replace(t0,Chr(59),)';
t0=استبدال(t0,Chr(60),)'<
t0=استبدال(t0,Chr(61),)'=
t0=استبدال(t0,Chr(62),)'>
t0=استبدال(t0,Chr(63),)'?
t0=استبدال(t0,Chr(64),)'@
t0=استبدال(t0,Chr(91),)'/
t0=استبدال(t0,Chr(92),)'/
t0=استبدال(t0,Chr(93),)']
t0=استبدال(t0,Chr(94),)'^
t0=استبدال(t0,Chr(95),)'_
t0=Replace(t0,Chr(96),)'`
t0=استبدال(t0,Chr(123),)'{
t0=استبدال(t0,Chr(124),)'|
t0=استبدال(t0,Chr(125),)'}
t0=استبدال(t0,Chr(126),)'~
حالة أخرى
t0=استبدال(t0, &, &)
t0=استبدال(t0, ',')
t0=استبدال(t0, , )
t0=استبدال(t0، <، <)
t0=استبدال(t0، >، >)
إنهاء التحديد
إذا Instr(Lcase(t0),expression)>0 ثم
t0=استبدال(t0,expression,expression, 1, -1, 0)
نهاية إذا
نص التصفية=t0
وظيفة النهاية
'===========================================================
'تصفية الأحرف الشائعة وHTML
'===========================================================
عامل تصفية HTML(ByVal t0)
إذا Len(t0)=0 أو IsNull(t0) أو IsArray(t0) ثم FilterHtml=:الخروج من الوظيفة
إذا Len(Sdcms_Badhtml)>0 ثم t0=ReplaceText(t0,<(//|)(&Sdcms_Badhtml&), <$1$2)
إذا Len(Sdcms_BadEvent)>0 ثم t0=ReplaceText(t0,<(.[^>]*)(&Sdcms_BadEvent&), <$1$2)
t0=نص التصفية(t0,0)
مرشحHtml=t0
وظيفة النهاية
الدالة GotTopic(ByVal t0,ByVal t1)
إذا كان Len(t0)=0 أو IsNull(t0) إذن
حصلت على الموضوع=
وظيفة الخروج
نهاية إذا
خافت ل، ر، ج، ط
t0=Replace(Replace(Replace(Replace(t0, , ),,chr(34))),>,>),<,<)
ل = لين (t0)
ر = 0
لأني=1 إلى ل
ج=أبس(تصاعدي(منتصف(t0,i,1)))
إذا ج>255 ثم t=t+2 وإلا t=t+1
إذا ر>=t1 ثم
gotTopic=Left(t0,I)&...
الخروج ل
آخر
حصلت على الموضوع=t0
نهاية إذا
التالي
GotTopic=Replace(Replace(Replace(Replace(GotTopic, , ),chr(34),),>,>),<,<)
وظيفة النهاية
وظيفة UrlDecode(ByVal t0)
خافت t1، t2، t3، أنا، t4، t5، t6
t1=
t2=خطأ
t3=
لأني = 1 إلى لين (t0)
t4=منتصف(t0,I,1)
إذا t4=+ ثم
t1=t1&
ElseIF t4=% ثم
t5=منتصف(t0,i+1,2)
t6=سينت(&H & t5)
إذا t2 ثم
t2=خطأ
t1=t1&Chr(سينت(&H&t3&t5))
آخر
إذا كانت قيمة Abs(t6)<=127 إذن
t1=t1&Chr(t6)
آخر
t2=صحيح
t3=t5
نهاية إذا
نهاية إذا
أنا=أنا+2
آخر
t1=t1&t4
نهاية إذا
التالي
UrlDecode=t1
وظيفة النهاية
الدالة CutStr(byVal t0,byVal t1)
خافت ل، ر، ج، ط
إذا كان IsNull(t0) ثم CutStr=:Exit الدالة
ل = لين (t0)
t1=كثافة العمليات (t1)
ر = 0
لأني=1 إلى ل
ج=تصاعدي (منتصف (t0،I،1))
إذا كان c<0 أو c>255 ثم t=t+2 وإلا t=t+1
إذا ر>=t1 ثم
CutStr=يسار(t0,I)&...
الخروج ل
آخر
CutStr=t0
نهاية إذا
التالي
وظيفة النهاية
إغلاق الوظيفةHtml(ByVal t0)
Dim t1،I،t2،t3،Regs،Matches،J،Match
تعيين Regs=RegExp الجديد
Regs.IgnoreCase=صحيح
Regs.Global=صحيح
t1=Array(p,div,span,table,ul,font,b,u,i,h1,h2,h3,h4,h5,h6)
لأني=0 إلى UBound(t1)
t2=0
t3=0
Regs.Pattern=/<&t1(I)&( [^/</>]+|)/>
تعيين التطابقات=Regs.Execute(t0)
لكل مباراة في المباريات
t2=t2+1
التالي
Regs.Pattern=/</&t1(I)&/>
تعيين التطابقات=Regs.Execute(t0)
لكل مباراة في المباريات
t3=t3+1
التالي
من أجل j=1 إلى t2-t3
t0=t0+</&t1(I)&>
التالي
التالي
إغلاقHtml=t0
وظيفة النهاية