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) Maka FilterText=:Keluar dari Fungsi
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=Ganti(t0,Chr(9),)'tab(karakter tab horizontal)
t0=Ganti(t0,Chr(10),)'Baris baru
t0=Ganti(t0,Chr(11),)'tab(tab vertikal)
t0=Ganti(t0,Chr(12),)'Halaman berubah
t0=Replace(t0,Chr(13),)' pengangkutan kembali chr(13)&chr(10) kombinasi pengembalian pengangkutan dan pengumpan 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 Maka t0=ReplaceText(t0,<(//|)(&Sdcms_Badhtml&), <$1$2)
JIKA Len(Sdcms_BadEvent)>0 Maka 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=+ Maka
t1=t1&
ElseIF t4=% Kemudian
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) Maka 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.Pola=/<&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(I)&>
Berikutnya
Berikutnya
TutupHtml=t0
Fungsi Akhir