ASP를 작성할 때 해커가 사용하는 것을 방지하기 위해 특수 문자열 처리에 주의를 기울여야 합니다. ASP를 사용하는 친구들은 꼭 참고하세요.
다음과 같이 코드 코드를 복사합니다.
'=======================================
'사고 예방을 위한 콘텐츠 변환
'=======================================
함수 내용_Encode(ByVal t0)
IF IsNull(t0) 또는 Len(t0)=0 그러면
콘텐츠_인코드=""
또 다른
Content_Encode=바꾸기(t0,"<","<")
Content_Encode=바꾸기(Content_Encode,">",">")
IF 종료
기능 종료
'=======================================
'컨텐츠 변환 해제
'=======================================
함수 내용_Decode(ByVal t0)
IF IsNull(t0) 또는 Len(t0)=0 그러면
콘텐츠_디코드=""
또 다른
Content_Decode=바꾸기(t0,"<","<")
Content_Decode=바꾸기(Content_Decode,">",">")
IF 종료
기능 종료
'=======================================
'필터 문자
'=======================================
함수 FilterText(ByVal t0,ByVal t1)
IF Len(t0)=0 Or IsNull(t0) 또는 IsArray(t0) Then FilterText="":종료 함수
t0=트림(t0)
케이스 t1 선택
사례 "1"
t0=바꾸기(t0,Chr(32)," ")
t0=바꾸기(t0,Chr(13),"")
t0=바꾸기(t0,문자(10)&문자(10),"<br>")
t0=바꾸기(t0,Chr(10),"<br>")
사례 "2"
t0=바꾸기(t0,Chr(8),"")'return
t0=Replace(t0,Chr(9),"")'tab(가로 탭 문자)
t0=바꾸기(t0,Chr(10),"")'새줄 바꾸기
t0=Replace(t0,Chr(11),"")'tab(세로 탭 문자)
t0=Replace(t0,Chr(12),"")'페이지 변경
t0=Replace(t0,Chr(13),"")' 캐리지 리턴 chr(13)&chr(10) 캐리지 리턴과 라인 피드의 조합
t0=바꾸기(t0,Chr(22),"")
t0=바꾸기(t0,Chr(32),"")'SPACE
t0=대체(t0,Chr(33),"")'!
t0=바꾸기(t0,Chr(34),"")'"
t0=바꾸기(t0,Chr(35),"")'#
t0=바꾸기(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=바꾸기(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=바꾸기(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, ">", ">")
선택 종료
IF Instr(Lcase(t0),"표현식")>0 Then
t0=바꾸기(t0,"식","식", 1, -1, 0)
종료 조건
필터텍스트=t0
기능 종료
'=======================================
'공통 문자 및 HTML 필터링
'=======================================
기능 FilterHtml(ByVal t0)
IF Len(t0)=0 Or IsNull(t0) 또는 IsArray(t0) Then FilterHtml="":종료 함수
IF Len(Sdcms_Badhtml)>0 Then t0=ReplaceText(t0,"<(//|)("&Sdcms_Badhtml&")", "<$1$2")
IF Len(Sdcms_BadEvent)>0 Then t0=ReplaceText(t0,"<(.[^>]*)("&Sdcms_BadEvent&")", "<$1$2")
t0=필터텍스트(t0,0)
필터Html=t0
기능 종료
함수 GotTopic(ByVal t0,ByVal t1)
IF Len(t0)=0 또는 IsNull(t0) 그러면
주제가 있어요=""
종료 기능
IF 종료
희미한 l,t,c,i
t0=Replace(Replace(Replace(Replace(t0," "," "),"",chr(34)),">",">"),"<","<")
l=렌(t0)
티=0
I=1에서 l까지
c=Abs(Asc(Mid(t0,i,1)))
IF c>255 그러면 t=t+2 그렇지 않으면 t=t+1
IF t>=t1 그러면
gotTopic=왼쪽(t0,I)&"…"
종료 대상
또 다른
GotTopic=t0
IF 종료
다음
GotTopic=Replace(Replace(Replace(Replace(GotTopic," "," "),chr(34),""),">",">"),"<","<")
기능 종료
함수 UrlDecode(ByVal t0)
희미한 t1,t2,t3,i,t4,t5,t6
t1=""
t2=거짓
t3=""
I=1에서 Len(t0)까지
t4=중간(t0,I,1)
IF t4="+" 그러면
t1=t1&" "
ElseIF t4="%" 그러면
t5=중간(t0,i+1,2)
t6=Cint("&H" & t5)
IF t2 그러면
t2=거짓
t1=t1&Chr(Cint("&H"&t3&t5))
또 다른
IF 절대(t6)<=127이면
t1=t1&채널(t6)
또 다른
t2=참
t3=t5
IF 종료
IF 종료
나=나+2
또 다른
t1=t1&t4
IF 종료
다음
URL디코드=t1
기능 종료
함수 CutStr(byVal t0,byVal t1)
희미한 l,t,c,i
IF IsNull(t0) Then CutStr="": 함수 종료
l=렌(t0)
t1=정수(t1)
티=0
I=1에서 l까지
c=오름차순(중간(t0,I,1))
IF c<0 또는 c>255이면 t=t+2 그렇지 않으면 t=t+1
IF t>=t1 그러면
CutStr=왼쪽(t0,I)&"..."
종료 대상
또 다른
CutStr=t0
IF 종료
다음
기능 종료
함수 CloseHtml(ByVal t0)
희미한 t1,I,t2,t3,Regs,Matches,J,Match
Regs=새 RegExp 설정
Regs.IgnoreCase=True
Regs.Global=참
t1=배열("p","div","span","테이블","ul","글꼴","b","u","i","h1","h2","h3 ","h4","h5","h6")
I=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
기능 종료