トロイの木馬はプログラムを通じてアップロードされることがあり、通常は画像を装っています。以下は、ASP で画像トロイの木馬を検出するためのコードです。必要な場合は、それを参照してください。 ASP トロイの木馬防御:
次のようにコードをコピーします。
const adTypeBinary=1
薄暗い jpg(1):jpg(0)=CByte(&HFF):jpg(1)=CByte(&HD8)
dim bmp(1):bmp(0)=CByte(&H42):bmp(1)=CByte(&H4D)
dim 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)
Response.Write CheckFileType(Server.MapPath(2.gif))
関数 CheckFileType(ファイル名)
エラー時は次から再開
CheckFileType=false
dim fstream、fileExt、stamp、i
fileExt=mid(ファイル名,InStrRev(ファイル名,.)+1)
set fstream=Server.createobject(ADODB.Stream)
fstream.Open
fstream.Type=adTypeBinary
fstream.LoadFromFile ファイル名
fstream.position=0
ケースファイル拡張子を選択
ケース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
終了関数
%>