檢查上傳圖片是否合法的函數(shù),木馬改后綴名、圖片加惡意代碼均逃不過(guò)
更新時(shí)間:2008年03月06日 21:42:10 作者:
很多ASP程序檢查上傳圖片是否合法往往只去檢查文件的后綴,這樣有一個(gè)很大的安全隱患,就是如果把ASP文件的后綴名改成.jpg或者.gif上傳,或者圖片里加入惡意代碼再上傳,那也會(huì)被程序認(rèn)為是圖片文件而照傳不誤。假如不懷好意的人上傳個(gè)木馬文件進(jìn)去,雖然是后綴為jpg也許無(wú)法直接運(yùn)行,但確確實(shí)實(shí)給服務(wù)器帶來(lái)了很大的安全隱患。
今天試了下AspJpeg組件,發(fā)現(xiàn)用AspJpeg組件去處理不正常的圖片文件的時(shí)候就會(huì)出錯(cuò),呵呵,這個(gè)正好可以讓我們用來(lái)檢查圖片的合法性,偶給封裝成函數(shù)了~
'-------------------------------------------
'函數(shù)名:chkimg
'作 用:檢查圖片文件是否合法
'參 數(shù):img,圖片路徑
'返回值:布爾類型
'條 件:服務(wù)器必須支持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
因?yàn)锳spJpeg只能處理已經(jīng)在服務(wù)器上的文件,所以實(shí)際運(yùn)用的過(guò)程中我們可以這樣做:先將圖片上傳到一個(gè)臨時(shí)文件夾,然后檢查圖片的合法性,如果合法,復(fù)制圖片到圖片保存目錄,刪除臨時(shí)文件并返回上傳成功信息,如果非法,直接刪除臨時(shí)文件并返回錯(cuò)誤警告。
復(fù)制代碼 代碼如下:
'-------------------------------------------
'函數(shù)名:chkimg
'作 用:檢查圖片文件是否合法
'參 數(shù):img,圖片路徑
'返回值:布爾類型
'條 件:服務(wù)器必須支持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
因?yàn)锳spJpeg只能處理已經(jīng)在服務(wù)器上的文件,所以實(shí)際運(yùn)用的過(guò)程中我們可以這樣做:先將圖片上傳到一個(gè)臨時(shí)文件夾,然后檢查圖片的合法性,如果合法,復(fù)制圖片到圖片保存目錄,刪除臨時(shí)文件并返回上傳成功信息,如果非法,直接刪除臨時(shí)文件并返回錯(cuò)誤警告。
相關(guān)文章
asp中使用redim、preserve創(chuàng)建動(dòng)態(tài)數(shù)組實(shí)例
這篇文章主要介紹了asp中使用redim、preserve創(chuàng)建動(dòng)態(tài)數(shù)組實(shí)例,本文還給出了ASP中其它的數(shù)組操作例子,需要的朋友可以參考下2014-08-08通過(guò)asp程序來(lái)創(chuàng)建access數(shù)據(jù)庫(kù)
access數(shù)據(jù)庫(kù)屬于“文件型數(shù)據(jù)庫(kù)”,創(chuàng)建時(shí)需要指定它要使用的文件2009-06-06Asp Split函數(shù)之使用多個(gè)分割符的方法
有時(shí)候用戶輸入的分隔符種類比較多,支持逗號(hào)也想要支持空格等等,其實(shí)原來(lái)就是先統(tǒng)一為一中分隔符再使用split進(jìn)行分割就可以了2013-03-03再發(fā)幾個(gè)ASP不錯(cuò)的函數(shù)
再發(fā)幾個(gè)ASP不錯(cuò)的函數(shù)...2007-08-08asp下將數(shù)據(jù)庫(kù)中的信息存儲(chǔ)至XML文件中
asp下將數(shù)據(jù)庫(kù)中的信息存儲(chǔ)至XML文件中...2007-04-04ASP利用Google實(shí)現(xiàn)在線翻譯功能
ASP利用Google實(shí)現(xiàn)在線翻譯功能...2006-09-09