成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

如何在Java中掃描和驗證圖像上傳

譯文
開發 前端
本文討論了圖像文件上傳面臨的危險,并分別提出了在Java中掃描和驗證圖像文件的兩種解決方案。

譯者 | 李睿

審校 | 重樓

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

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

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

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

演示兩個解決方案

在本文的其余部分中,將演示兩個簡單的、免費使用的解決方案,它們可以在圖像文件上傳到云存儲之前幫助進行病毒掃描和驗證。兩者都可以有效地利用互補的、可運行的Java代碼示例來構建API調用。這些API分別執行以下功能:

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

(2)驗證圖像文件

這兩個API相互結合使用,可以幫助確保圖像上傳是有效的,并且沒有病毒和惡意軟件,從而顯著降低與圖像文件直接上傳相關的風險。

掃描圖文件是否有病毒

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

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

XML 
 <repositories>
  <repository>
 <id>jitpack.io</id>
 <url>https://jitpack.io</url>
 </repository>
  </repositories>

之后,添加對依賴項的引用:

XML 
 <dependencies>
 <dependency>
  <groupId>com.github.Cloudmersive</groupId>
 <artifactId>Cloudmersive.APIClient.Java</artifactId>
  <version>v4.25</version>
 </dependency>
 </dependencies>

在安裝完成后,可以使用以下補充代碼示例構建API調用:

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();
 }

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

驗證圖像文件

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

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

XML 
 <repositories>
 <repository>
 <id>jitpack.io</id>
 <url>https://jitpack.io</url>
  </repository>
 </repositories>

然后,添加對依賴項的引用:

XML 
 <dependencies>
 <dependency>
  <groupId>com.github.Cloudmersive</groupId>
  <artifactId>Cloudmersive.APIClient.Java</artifactId>
 <version>v4.25</version>
 </dependency>
 </dependencies>

最后,可以使用下面的現成代碼示例來構建API調用:

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();
 }

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


責任編輯:華軒 來源: 51CTO
相關推薦

2020-10-27 09:37:43

PyTorchTensorFlow機器學習

2019-08-12 14:04:51

2019-10-30 09:00:00

Windows 10Windows Def離線掃描

2023-06-16 12:15:09

UbuntuLinuxAVIF 圖像

2020-11-14 11:27:00

LinuxLUNSCSI

2022-04-26 09:16:35

Linux照片掃描

2018-05-30 14:29:14

WindowsWindows 10系統文件

2023-06-15 13:01:07

JavaPythonJavaScript

2017-01-05 14:42:49

LinuxUnix服務器

2009-07-10 17:54:15

Java中調用JythJython

2018-06-26 15:40:49

Tensorflow.MNIST圖像數據

2023-09-24 19:29:44

LinuxWebP圖像

2010-09-15 15:12:49

2023-01-15 17:11:44

Rust

2023-03-14 16:44:20

Linuxhtop

2021-09-13 09:01:02

Vue 技巧 開發工具

2015-08-21 09:07:52

LinuxNMAP安全

2022-04-01 09:00:00

Linux安全SSH

2009-06-08 21:35:02

Java啟動程序

2009-06-17 13:19:50

Java調用DLL
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 免费黄色片视频 | 久久久久久国产精品久久 | 国产精品91久久久久久 | 免费在线观看黄视频 | 欧美一级黄色免费看 | 日韩av一区二区在线观看 | 91在线资源 | aaaaaaa片毛片免费观看 | 午夜精品久久久久久久久久久久久 | 黄色大片在线 | 欧美激情欧美激情在线五月 | 国产一区二区三区久久久久久久久 | www.久| 国产日产欧产精品精品推荐蛮挑 | 免费不卡视频 | 日韩电影免费在线观看中文字幕 | www.国产精 | 日韩欧美视频 | 精品一区免费 | 在线视频第一页 | 国产探花在线精品一区二区 | 99精品99| 欧美日韩一二三区 | 欧美一级淫片免费视频黄 | 久久国产综合 | 久久久久久高潮国产精品视 | 国产精品日日做人人爱 | 欧美日韩在线一区二区 | 国产欧美一级 | 蜜桃官网 | 日韩精品在线看 | 欧美一级视频在线观看 | 一区二区三区四区在线视频 | 伊人无码高清 | 一区二区在线不卡 | 国产a区 | 91视视频在线观看入口直接观看 | 精品一区二区免费视频 | av在线视| 蜜桃视频麻豆 | 国产精品99久久久久久久久久久久 |