日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
如何在Java中掃描和驗(yàn)證圖像上傳

譯者 | 李睿

公司主營業(yè)務(wù):網(wǎng)站設(shè)計(jì)制作、網(wǎng)站制作、移動網(wǎng)站開發(fā)等業(yè)務(wù)。幫助企業(yè)客戶真正實(shí)現(xiàn)互聯(lián)網(wǎng)宣傳,提高企業(yè)的競爭能力。創(chuàng)新互聯(lián)是一支青春激揚(yáng)、勤奮敬業(yè)、活力青春激揚(yáng)、勤奮敬業(yè)、活力澎湃、和諧高效的團(tuán)隊(duì)。公司秉承以“開放、自由、嚴(yán)謹(jǐn)、自律”為核心的企業(yè)文化,感謝他們對我們的高要求,感謝他們從不同領(lǐng)域給我們帶來的挑戰(zhàn),讓我們激情的團(tuán)隊(duì)有機(jī)會用頭腦與智慧不斷的給客戶帶來驚喜。創(chuàng)新互聯(lián)推出象州免費(fèi)做網(wǎng)站回饋大家。

審校 | 重樓

直接上傳圖像文件的過程在客戶端用戶和網(wǎng)站的底層文件存儲實(shí)例之間創(chuàng)建了一條高效的路徑,極大地有利于客戶端/web服務(wù)關(guān)系的兩端。在很大程度上,由于獨(dú)立開發(fā)者項(xiàng)目和小型企業(yè)的云存儲資源的可用性(以及可負(fù)擔(dān)性)不斷提高,人們越來越頻繁地上傳自己的圖像文件,無論在哪里上網(wǎng),這與對新形式的社會參與和商業(yè)的穩(wěn)定需求同步增長。

然而,文件上傳安全性如今成為一個(gè)非常嚴(yán)重的問題,而且圖像文件很容易被客戶端威脅行為者利用。當(dāng)然,圖像文件在這方面并不是唯一的(例如,包括PDF、DOCX等在內(nèi)的許多常見文件格式,可以容納各種隱藏的威脅),但它們在互聯(lián)網(wǎng)上的巨大價(jià)值(一個(gè)主要的視覺平臺)使它們成為惡意內(nèi)容的更便利的載體之一。

網(wǎng)絡(luò)攻擊者可以將惡意軟件和其他惡意代碼直接注入圖像文件,從而避免被配置不佳的上傳安全策略檢測到。惡意軟件能夠以幾種不同的方式隱藏在圖像文件中——直接附加到文件末尾,通過微小的代碼更改巧妙地合并,甚至隱藏在圖像的元數(shù)據(jù)或EXIF數(shù)據(jù)中。惡意代碼通常被設(shè)計(jì)為遠(yuǎn)程執(zhí)行或在文件打開時(shí)執(zhí)行,這意味著存儲文檔中處于休眠狀態(tài)、未被檢測到的惡意代碼可能會等待數(shù)天、數(shù)周甚至數(shù)月,然后突然釋放危險(xiǎn)內(nèi)容。網(wǎng)絡(luò)攻擊者不僅可以利用網(wǎng)站的系統(tǒng):如果一位毫無戒心的客戶端用戶下載了一個(gè)受感染的文件,他們的設(shè)備很快就會被入侵或破壞,嚴(yán)重(也許是永久)損害企業(yè)的聲譽(yù)。

緩解圖像文件上傳威脅,首先要實(shí)施強(qiáng)大的病毒和惡意軟件檢測策略,還需要采取合理的文件上傳驗(yàn)證措施。例如,異常大的圖像文件可能表明存在隱藏的威脅,因此了解(并可能標(biāo)準(zhǔn)化)圖像上傳的大小有助于更快地檢測威脅。此外,限制允許上傳的不同文件擴(kuò)展名的數(shù)量(例如,限制為PNG或JPG)使文件擴(kuò)展名驗(yàn)證更容易、更有效。文件擴(kuò)展名和標(biāo)頭也不應(yīng)該盲目信任——徹底的內(nèi)容驗(yàn)證應(yīng)該始終考慮到文件結(jié)構(gòu)和文件編碼。

演示兩個(gè)解決方案

在本文的其余部分中,將演示兩個(gè)簡單的、免費(fèi)使用的解決方案,它們可以在圖像文件上傳到云存儲之前幫助進(jìn)行病毒掃描和驗(yàn)證。兩者都可以有效地利用互補(bǔ)的、可運(yùn)行的Java代碼示例來構(gòu)建API調(diào)用。這些API分別執(zhí)行以下功能:

(1)掃描圖像文件是否有病毒

(2)驗(yàn)證圖像文件

這兩個(gè)API相互結(jié)合使用,可以幫助確保圖像上傳是有效的,并且沒有病毒和惡意軟件,從而顯著降低與圖像文件直接上傳相關(guān)的風(fēng)險(xiǎn)。

掃描圖文件是否有病毒

這個(gè)API配備了1700萬多個(gè)病毒和惡意軟件簽名,涵蓋了特洛伊木馬、勒索軟件和間諜軟件等極其常見的威脅。它也不局限于圖像文件(當(dāng)然還可以掃描PDF、DOCX、XLSX等文檔),因此,如果用戶的文件上傳過程接受多種文件類型,它提供了一些多功能性。所有掃描的文件最終將收到一個(gè)“CleanResult:True”或“CleanResult:False”。布爾響應(yīng)中如果為false,則檢測到的病毒的名稱將在API響應(yīng)中提供。

要安裝客戶機(jī)SDK,首先,在Maven POM文件中添加對存儲庫的引用。Jitpack用于動態(tài)編譯庫:

XML 
 
  
 jitpack.io
 https://jitpack.io
 
  

之后,添加對依賴項(xiàng)的引用:

XML 
 
 
  com.github.Cloudmersive
 Cloudmersive.APIClient.Java
  v4.25
 
 

在安裝完成后,可以使用以下補(bǔ)充代碼示例構(gòu)建API調(diào)用:

Java 
 // Import classes:
 //import com.cloudmersive.client.invoker.ApiClient;
 //import com.cloudmersive.client.invoker.ApiException;
 //import com.cloudmersive.client.invoker.Configuration;
 //import com.cloudmersive.client.invoker.auth.*;
 //import com.cloudmersive.client.ScanApi;

 ApiClient defaultClient = Configuration.getDefaultApiClient();

 // Configure API key authorization: Apikey
 ApiKeyAuth Apikey = (ApiKeyAuth) defaultClient.getAuthentication("Apikey");
 Apikey.setApiKey("YOUR API KEY");
 // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null)
 //Apikey.setApiKeyPrefix("Token");

 ScanApi apiInstance = new ScanApi();
 File inputFile = new File("/path/to/inputfile"); // File | Input file to perform the operation on.
 try {
  VirusScanResult result = apiInstance.scanFile(inputFile);
  System.out.println(result);
 } catch (ApiException e) {
  System.err.println("Exception when calling ScanApi#scanFile");
  e.printStackTrace();
 }

在測試這一解決方案時(shí),建議徹底研究可以安全地觸發(fā)“CleanResult:False”響應(yīng)的惰性文件的選項(xiàng)(例如,Eicar文件在這方面通常是一個(gè)流行的選擇)。

驗(yàn)證圖像文件

這個(gè)API旨在嚴(yán)格驗(yàn)證數(shù)十種常見的輸入圖像類型,包括JPG、PNG、WEBP、GIF等等。它將識別圖像上傳中包含的內(nèi)容是否與其擴(kuò)展名匹配,文件是否受密碼保護(hù),以及文件中是否存在任何錯(cuò)誤和警告。如果檢測到任何錯(cuò)誤,API響應(yīng)將提供錯(cuò)誤的描述、錯(cuò)誤的路徑和一個(gè)供參考的URI。

可以像以前一樣安裝這個(gè)客戶端SDK。將這一引用添加到MavenPOM文件存儲庫中:

XML 
 
 
 jitpack.io
 https://jitpack.io
  
 

然后,添加對依賴項(xiàng)的引用:

XML 
 
 
  com.github.Cloudmersive
  Cloudmersive.APIClient.Java
 v4.25
 
 

最后,可以使用下面的現(xiàn)成代碼示例來構(gòu)建API調(diào)用:

Java 
 // Import classes:
 //import com.cloudmersive.client.invoker.ApiClient;
 //import com.cloudmersive.client.invoker.ApiException;
 //import com.cloudmersive.client.invoker.Configuration;
 //import com.cloudmersive.client.invoker.auth.*;
 //import com.cloudmersive.client.ValidateDocumentApi;

 ApiClient defaultClient = Configuration.getDefaultApiClient();

 // Configure API key authorization: Apikey
 ApiKeyAuth Apikey = (ApiKeyAuth) defaultClient.getAuthentication("Apikey");
 Apikey.setApiKey("YOUR API KEY");
 // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null)
 //Apikey.setApiKeyPrefix("Token");

 ValidateDocumentApi apiInstance = new ValidateDocumentApi();
 File inputFile = new File("/path/to/inputfile"); // File | Input file to perform the operation on.
 try {
 DocumentValidationResult result = apiInstance.validateDocumentImageValidation(inputFile);
 System.out.println(result);
 } catch (ApiException e) {
 System.err.println("Exception when calling ValidateDocumentApi#validateDocumentImageValidation");
 e.printStackTrace();
 }

原文標(biāo)題:How To Scan and Validate Image Uploads in Java,作者:Brian O'Neill


當(dāng)前標(biāo)題:如何在Java中掃描和驗(yàn)證圖像上傳
網(wǎng)址分享:http://www.dlmjj.cn/article/dhgshdh.html