때때로 트로이 목마는 프로그램을 통해 업로드되며, 일반적으로 그림으로 위장한 ASP 아래의 트로이 목마를 감지하는 코드입니다. ASP 트로이 목마 방어:
다음과 같이 코드 코드를 복사합니다.
const adTypeBinary=1
희미한 jpg(1):jpg(0)=CByte(&HFF):jpg(1)=CByte(&HD8)
희미한 bmp(1):bmp(0)=CByte(&H42):bmp(1)=CByte(&H4D)
희미한 png(3):png(0)=CByte(&H89):png(1)=CByte(&H50):png(2)=CByte(&H4E):png(3)=CByte(&H47)
희미한 gif(5):gif(0)=CByte(&H47):gif(1)=CByte(&H49):gif(2)=CByte(&H46):gif(3)=CByte(&H39):gif(4) =CByte(&H38):gif(5)=CByte(&H61)
응답.쓰기 CheckFileType(Server.MapPath(2.gif))
함수 CheckFileType(파일 이름)
오류 발생 시 다음 재개
CheckFileType=false
희미한 fstream,fileExt,stamp,i
fileExt=mid(파일이름,InStrRev(파일이름,.)+1)
fstream=Server.createobject(ADODB.Stream) 설정
fstream.Open
fstream.Type=adTypeBinary
fstream.LoadFromFile 파일 이름
fstream.position=0
사례 파일 선택Ext
케이스 jpg,jpeg
스탬프=fstream.read(2)
i=0 ~ 1인 경우
if ascB(MidB(stamp,i+1,1))=jpg(i) then CheckFileType=true else CheckFileType=false
다음
케이스 gif
스탬프=fstream.read(6)
i=0~5인 경우
if ascB(MidB(stamp,i+1,1))=gif(i) then CheckFileType=true else CheckFileType=false
다음
케이스 png
스탬프=fstream.read(4)
i=0~3인 경우
if ascB(MidB(stamp,i+1,1))=png(i) then CheckFileType=true else CheckFileType=false
다음
케이스 bmp
스탬프=fstream.read(2)
i=0 ~ 1인 경우
if ascB(MidB(stamp,i+1,1))=bmp(i) then CheckFileType=true else CheckFileType=false
다음
선택 종료
fstream.Close
fseteam=아무것도 설정하지 않음
err.number<>0이면 CheckFileType=false
종료 기능
%>