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) Or IsArray(t0) Then 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=바꾸기(t0,Chr(8),)'return
t0=Replace(t0,Chr(9),)'tab(가로 탭 문자)
t0=바꾸기(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=바꾸기(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),expression)>0 Then
t0=바꾸기(t0,식,식, 1, -1, 0)
종료 조건
필터텍스트=t0
기능 종료
'=======================================
'공통 문자 및 HTML 필터링
'=======================================
기능 FilterHtml(ByVal t0)
IF Len(t0)=0 Or IsNull(t0) Or IsArray(t0) Then FilterHtml=:Exit 함수
IF Len(Sdcms_Badhtml)>0 그러면 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=바꾸기(바꾸기(바꾸기(바꾸기(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=바꾸기(바꾸기(바꾸기(바꾸기(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=신트(&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
기능 종료