Saat menulis asp, kita perlu memperhatikan pemrosesan string khusus untuk mencegahnya dieksploitasi oleh hacker. Teman-teman yang menggunakan asp harus merujuknya.
Copy kode kodenya sebagai berikut:
'========
'Konversi konten untuk mencegah kecelakaan
'========
Fungsi Content_Encode(ByVal t0)
JIKA IsNull(t0) Atau Len(t0)=0 Maka
Konten_Encode=""
Kalau tidak
Content_Encode=Ganti(t0,"<","<")
Content_Encode=Ganti(Content_Encode,">",">")
Akhir JIKA
Fungsi Akhir
'========
'Dekonversi konten
'========
Fungsi Content_Decode(ByVal t0)
JIKA IsNull(t0) Atau Len(t0)=0 Maka
Konten_Dekode=""
Kalau tidak
Content_Decode=Ganti(t0,"<","<")
Content_Decode=Ganti(Content_Decode,">",">")
Akhir JIKA
Fungsi Akhir
'========
'Filter karakter
'========
Fungsi FilterText(ByVal t0,ByVal t1)
JIKA Len(t0)=0 Atau IsNull(t0) Atau IsArray(t0) Kemudian FilterText="":Fungsi Keluar
t0=Potong(t0)
Pilih Kasus t1
Kasus "1"
t0=Ganti(t0,Chr(32)," ")
t0=Ganti(t0,Chr(13),"")
t0=Ganti(t0,Chr(10)&Chr(10),"<br>")
t0=Ganti(t0,Chr(10),"<br>")
Kasus "2"
t0=Ganti(t0,Chr(8),"")'kembali
t0=Replace(t0,Chr(9),"")'tab (karakter tab horizontal)
t0=Ganti(t0,Chr(10),"")'Baris baru
t0=Replace(t0,Chr(11),"")'tab (karakter tab vertikal)
t0=Ganti(t0,Chr(12),"")'Halaman berubah
t0=Replace(t0,Chr(13),"")' pengangkutan kembali chr(13)&chr(10) kombinasi pengembalian pengangkutan dan umpan saluran
t0=Ganti(t0,Chr(22),"")
t0=Ganti(t0,Chr(32),"")'SPASI
t0=Ganti(t0,Chr(33),"")'!
t0=Ganti(t0,Chr(34),"")'"
t0=Ganti(t0,Chr(35),"")'#
t0=Ganti(t0,Chr(36),"")'$
t0=Ganti(t0,Chr(37),"")'%
t0=Ganti(t0,Chr(38),"")'&
t0=Ganti(t0,Chr(39),"")''
t0=Ganti(t0,Chr(40),"")'(
t0=Ganti(t0,Chr(41),"")')
t0=Ganti(t0,Chr(42),"")'*
t0=Ganti(t0,Chr(43),"")'+
t0=Ganti(t0,Chr(44),"")',
t0=Ganti(t0,Chr(45),"")'-
t0=Ganti(t0,Chr(46),"")'.
t0=Ganti(t0,Chr(47),"")'/
t0=Ganti(t0,Chr(58),"")':
t0=Ganti(t0,Chr(59),"")';
t0=Ganti(t0,Chr(60),"")'<
t0=Ganti(t0,Chr(61),"")'=
t0=Ganti(t0,Chr(62),"")'>
t0=Ganti(t0,Chr(63),"")'?
t0=Ganti(t0,Chr(64),"")'@
t0=Ganti(t0,Chr(91),"")'/
t0=Ganti(t0,Chr(92),"")'/
t0=Ganti(t0,Chr(93),"")']
t0=Ganti(t0,Chr(94),"")'^
t0=Ganti(t0,Chr(95),"")'_
t0=Ganti(t0,Chr(96),"")'`
t0=Ganti(t0,Chr(123),"")'{
t0=Ganti(t0,Chr(124),"")'|
t0=Ganti(t0,Chr(125),"")'}
t0=Ganti(t0,Chr(126),"")'~
Kasus Lain
t0=Ganti(t0, "&", "&")
t0=Ganti(t0, "'", "'")
t0=Ganti(t0, """", """)
t0=Ganti(t0, "<", "<")
t0=Ganti(t0, ">", ">")
Pilihan Akhir
JIKA Instr(Lcase(t0),"ekspresi")>0 Lalu
t0=Ganti(t0,"ekspresi","ekspresi", 1, -1, 0)
Akhiri Jika
FilterTeks=t0
Fungsi Akhir
'========
'Filter karakter umum dan Html
'========
Fungsi FilterHtml(ByVal t0)
JIKA Len(t0)=0 Atau IsNull(t0) Atau IsArray(t0) Kemudian FilterHtml="":Keluar dari Fungsi
JIKA Len(Sdcms_Badhtml)>0 Lalu t0=ReplaceText(t0,"<(//|)("&Sdcms_Badhtml&")", "<$1$2")
JIKA Len(Sdcms_BadEvent)>0 Lalu t0=ReplaceText(t0,"<(.[^>]*)("&Sdcms_BadEvent&")", "<$1$2")
t0=FilterTeks(t0,0)
FilterHtml=t0
Fungsi Akhir
Fungsi GotTopic(ByVal t0,ByVal t1)
JIKA Len(t0)=0 Atau IsNull(t0) Maka
Punya Topik = ""
Fungsi Keluar
Akhir JIKA
Redupkan aku,t,c,i
t0=Ganti(Ganti(Ganti(Ganti(t0," "," "),"",chr(34)),">",">"),"<","<")
aku=Len(t0)
t=0
Untuk saya=1 Ke l
c=Abs(Asc(Pertengahan(t0,i,1)))
JIKA c>255 Maka t=t+2 Lain t=t+1
JIKA t>=t1 Maka
gotTopic=Kiri(t0,I)&"..."
Keluar Untuk
Kalau tidak
PunyaTopik=t0
Akhir JIKA
Berikutnya
GotTopic=Ganti(Ganti(Ganti(Ganti(GotTopic," "," "),chr(34),""),">",">"),"<","<")
Fungsi Akhir
Fungsi UrlDecode(ByVal t0)
Redupkan t1,t2,t3,i,t4,t5,t6
t1=""
t2=Salah
t3=""
Untuk I=1 Ke Len(t0)
t4=Pertengahan(t0,I,1)
JIKA t4="+" Lalu
t1=t1&" "
ElseIF t4="%" Lalu
t5=Pertengahan(t0,i+1,2)
t6=Cint("&H" & t5)
JIKA t2 Lalu
t2=Salah
t1=t1&Chr(Cint("&H"&t3&t5))
Kalau tidak
JIKA Abs(t6)<=127 maka
t1=t1&Chr(t6)
Kalau tidak
t2=Benar
t3=t5
Akhir JIKA
Akhir JIKA
saya=saya+2
Kalau tidak
t1=t1&t4
Akhir JIKA
Berikutnya
UrlDekode=t1
Fungsi Akhir
Fungsi CutStr(olehVal t0,olehVal t1)
Redupkan aku,t,c,i
JIKA IsNull(t0) Kemudian CutStr="":Keluar dari Fungsi
aku=Len(t0)
t1=Int(t1)
t=0
Untuk saya=1 Ke l
c=Asc(Pertengahan(t0,I,1))
JIKA c<0 Atau c>255 Maka t=t+2 Lain t=t+1
JIKA t>=t1 Maka
CutStr=Kiri(t0,I)&"..."
Keluar Untuk
Kalau tidak
PotongStr=t0
Akhir JIKA
Berikutnya
Fungsi Akhir
Fungsi CloseHtml(ByVal t0)
Redupkan t1,I,t2,t3,Reg,Cocok,J,Cocok
Tetapkan Regs=RegExp Baru
Regs.IgnoreCase=Benar
Regs.Global=Benar
t1=Array("p","div","span","tabel","ul","font","b","u","i","h1","h2","h3 ","h4","h5","h6")
Untuk I=0 Ke UBound(t1)
t2=0
t3=0
Regs.Pattern="/<"&t1(I)&"( [^/</>]+|)/>"
Setel Kecocokan=Regs.Execute(t0)
Untuk Setiap Pertandingan Dalam Pertandingan
t2=t2+1
Berikutnya
Regs.Pattern="/</"&t1(I)&"/>"
Setel Kecocokan=Regs.Execute(t0)
Untuk Setiap Pertandingan Dalam Pertandingan
t3=t3+1
Berikutnya
Untuk j=1 Sampai t2-t3
t0=t0+"</"&t1(Saya)&">"
Berikutnya
Berikutnya
TutupHtml=t0
Fungsi Akhir