我也許問一個愚蠢的問題,但我想一定是我的應用程序是幾乎完成,我不想面對病毒的一些問題在未來風險
我有一個應用程序用angular2編寫,後端用java編寫。 人們可以更改他們的個人資料圖片。
從我的前臺我用base64編碼圖片,併發送一個帖子到我的休息api。
- 服務器檢查的base64的大小和拒絕它,如果它達到一定的大小(但我也有2MB的maxPostSize在默認的Tomcat)
基於64位,然後用庫net.iharder解碼該改造它在字節組 http://iharder.sourceforge.net/current/java/base64/
一旦完成我檢查,如果該文件是一個圖象(及調整其大小以及)通過創建一個BufferedImage
ImageIO.read(ByteArrayInputStream)
如果它不對應一張圖片,它將返回null所以我也沒有在這裏看到風險。
一旦完成,我將圖片存儲在我的服務器中。
誰協商,圖像的配置文件將接收base64編碼圖像(相應於上載的一個),它會被顯示在一個基本
<img src="myBase64"/>
只有JPG和PNG的任何輪廓被允許
我的問題是這樣的:如果一個人發送一個包含病毒的文件,我的服務器或最終用戶是否有任何風險?或者我是否安全使用ImageIO閱讀器。
在此先感謝
存在針對標準圖像庫的緩衝區溢出攻擊。例如,PNG/JPEG標題以超出預期大小的方式寫入。 –