檢查上傳圖片是否合法的函數,木馬改后綴名、圖片加惡意代碼均逃不過
更新時間:2008年03月06日 21:42:10 作者:
很多ASP程序檢查上傳圖片是否合法往往只去檢查文件的后綴,這樣有一個很大的安全隱患,就是如果把ASP文件的后綴名改成.jpg或者.gif上傳,或者圖片里加入惡意代碼再上傳,那也會被程序認為是圖片文件而照傳不誤。假如不懷好意的人上傳個木馬文件進去,雖然是后綴為jpg也許無法直接運行,但確確實實給服務器帶來了很大的安全隱患。
今天試了下AspJpeg組件,發(fā)現用AspJpeg組件去處理不正常的圖片文件的時候就會出錯,呵呵,這個正好可以讓我們用來檢查圖片的合法性,偶給封裝成函數了~
'-------------------------------------------
'函數名:chkimg
'作 用:檢查圖片文件是否合法
'參 數:img,圖片路徑
'返回值:布爾類型
'條 件:服務器必須支持AspJpeg
'-------------------------------------------
Function chkimg(img)
on error resume Next
chkimg=True
if isnull(img) then chkimg=false:exit function
Set chkJpeg = Server.CreateObject("Persits.Jpeg")
chkPath = Server.mappath(img)
chkJpeg.Open chkPath
If Err Then
chkimg=False
End If
If err.number<>0 Then err.clear
Set chkjpeg=Nothing
End Function
因為AspJpeg只能處理已經在服務器上的文件,所以實際運用的過程中我們可以這樣做:先將圖片上傳到一個臨時文件夾,然后檢查圖片的合法性,如果合法,復制圖片到圖片保存目錄,刪除臨時文件并返回上傳成功信息,如果非法,直接刪除臨時文件并返回錯誤警告。
復制代碼 代碼如下:
'-------------------------------------------
'函數名:chkimg
'作 用:檢查圖片文件是否合法
'參 數:img,圖片路徑
'返回值:布爾類型
'條 件:服務器必須支持AspJpeg
'-------------------------------------------
Function chkimg(img)
on error resume Next
chkimg=True
if isnull(img) then chkimg=false:exit function
Set chkJpeg = Server.CreateObject("Persits.Jpeg")
chkPath = Server.mappath(img)
chkJpeg.Open chkPath
If Err Then
chkimg=False
End If
If err.number<>0 Then err.clear
Set chkjpeg=Nothing
End Function
因為AspJpeg只能處理已經在服務器上的文件,所以實際運用的過程中我們可以這樣做:先將圖片上傳到一個臨時文件夾,然后檢查圖片的合法性,如果合法,復制圖片到圖片保存目錄,刪除臨時文件并返回上傳成功信息,如果非法,直接刪除臨時文件并返回錯誤警告。
相關文章
asp中使用redim、preserve創(chuàng)建動態(tài)數組實例
這篇文章主要介紹了asp中使用redim、preserve創(chuàng)建動態(tài)數組實例,本文還給出了ASP中其它的數組操作例子,需要的朋友可以參考下2014-08-08