บางครั้งเมื่ออัปโหลดโทรจันผ่านโปรแกรมพวกเขามักจะปลอมตัวเป็นรูปภาพ
ขั้นแรกให้กำหนดขนาดไฟล์:
- iffile.filesize <10 แล้ว
- Response.write (<script> การแจ้งเตือน ('คุณไม่ได้เลือกที่จะอัปโหลดไฟล์') </script>)
- Response.write (<script> history.go (-1) </script>)
- Response.end ()
- endif
หลังจากอัปโหลดไฟล์ไปยังเซิร์ฟเวอร์ให้กำหนดอักขระการทำงานที่เป็นอันตรายในไฟล์ของผู้ใช้:
- setMyFile = server.createObject (scripting.filesystemobject)
- setMyText = myFile.OpentExtFile (filePath, 1) 'อ่านไฟล์ข้อความ
- stextall = lcase (mytext.readall)
- mytext.close
- setMyFile = ไม่มีอะไร
- SSTR = .GetFolder | .CreateFolder | .DeleteFolder | .Createdirectory | .deletedirectory | .Saveas
- | wscript.shell | script.encode | เซิร์ฟเวอร์. |
- snostring = split (sstr, |)
- fori = 0toubund (snostring)
- ifinstr (stextall, snostring (i)) แล้ว
- setFiledel = server.createObject (scripting.filesystemobject)
- Filedel.deleteFileFilepath
- setFiledel = ไม่มีอะไร
- Response.write (<script> การแจ้งเตือน ('มีปัญหากับไฟล์ที่คุณอัปโหลดการอัปโหลดล้มเหลว'); window.close (); </script>)
- Response.end ()
- endif
- ต่อไป
วิธีป้องกันภาพเพศโทรจันจากการอัปโหลด
ฉันตรวจสอบรหัสนี้โดยไม่มีปัญหาใด ๆ แล้วมันสามารถบล็อกการอัปโหลดรูปภาพโทรจันได้
- -
- '*********************************************************** ***** ***************
- 'ฟังก์ชั่น CheckFileType ใช้เพื่อตรวจสอบว่าไฟล์เป็นไฟล์ภาพหรือไม่
- 'ชื่อไฟล์พารามิเตอร์เป็นพา ธ ไปยังไฟล์โลคัล
- 'ถ้ามันเป็นไฟล์ jpeg, gif, bmp, png, ฟังก์ชันส่งกลับจริงมิฉะนั้นจะส่งคืนเท็จ
- '*********************************************************** ***** ***************
- ConstadTypeBinary = 1
- dimjpg (1): jpg (0) = cbyte (& hff): jpg (1) = cbyte (& hd8)
- Dimbmp (1): BMP (0) = CBYTE (& H42): BMP (1) = CBYTE (& H4D)
- dimpng (3): png (0) = cbyte (& h89): png (1) = cbyte (& h50): png (2) = cbyte (& h4e): png (3) = cbyte (& h47)
- dimgif (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.WriteCheckFileType (Server.Mappath (2.GIF))
- FunctionCheckFileType (ชื่อไฟล์)
- onerrorresumenext
- checkFileType = false
- dimfstream, fileext, แสตมป์, i
- fileext = mid (ชื่อไฟล์, instrrev (ชื่อไฟล์,.)+1)
- setfstream = server.createObject (adodb.stream)
- fstream.open
- fstream.type = adtypebinary
- fstream.loadfromfilefilename
- fstream.position = 0
- SELECTCASEFILEEXT
- casejpg, jpeg
- แสตมป์ = fstream.read (2)
- fori = 0to1
- IFACB (MIDB (แสตมป์, i+1,1)) = jpg (i) thencheckFileType = treeelseCheckFileType = false
- ต่อไป
- casegif
- แสตมป์ = fstream.read (6)
- fori = 0to5
- IFACB (MIDB (แสตมป์, i+1,1)) = gif (i) thenCheckFileType = TrueelseCheckFileType = FALSE
- ต่อไป
- casepng
- แสตมป์ = fstream.read (4)
- fori = 0to3
- IFACB (MIDB (แสตมป์, i+1,1)) = png (i) thencheckFileType = TrueelseCheckFileType = FALSE
- ต่อไป
- casebmp
- แสตมป์ = fstream.read (2)
- fori = 0to1
- IFACB (MIDB (แสตมป์, i+1,1)) = BMP (i) thenCheckFileType = TrueelseCheckFileType = FALSE
- ต่อไป
- endelect
- fstream.close
- setfsetem = ไม่มีอะไร
- iferr.number <> 0thencheckFileType = false
- endfunction
- -
ข้างต้นคือการวิเคราะห์หลักการของโทรจันที่ป้องกันไม่ให้อัพโหลดรูปภาพจาก ASP