檢查上傳圖片是否合法的函數(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,圖片路徑
'返回值:布爾類(lèi)型
'條 件:服務(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,圖片路徑
'返回值:布爾類(lèi)型
'條 件:服務(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)文章
在.NET Core 中使用 FluentValidation 進(jìn)行規(guī)則驗(yàn)證的方法
這篇文章主要介紹了在.NET Core 中使用 FluentValidation 進(jìn)行規(guī)則驗(yàn)證,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-02-02
ASP 高亮顯示不區(qū)分大小寫(xiě)的關(guān)鍵字
今日,碰到一個(gè)問(wèn)題:如何在網(wǎng)頁(yè)中高亮顯示不區(qū)分大小寫(xiě)的關(guān)鍵字2010-01-01
ScriptHtml 函數(shù)之過(guò)濾html標(biāo)記的asp代碼
ScriptHtml 函數(shù)之過(guò)濾html標(biāo)記的asp代碼...2007-09-09
解決使用良精企業(yè)建站7.0未注冊(cè)問(wèn)題
解決使用良精企業(yè)建站7.0未注冊(cè)問(wèn)題...2007-04-04
用js實(shí)現(xiàn)QQ在線(xiàn)查詢(xún)功能
用js實(shí)現(xiàn)QQ在線(xiàn)查詢(xún)功能...2007-06-06

