日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

5招减少网站恶意文件上传

發(fā)布時間:2024/4/11 编程问答 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 5招减少网站恶意文件上传 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

在網(wǎng)絡(luò)上進行分享的時候有一個操作肯定是無法避免的,那就是“文件上傳”。我們經(jīng)常發(fā)微博、發(fā)微信朋友圈等等,發(fā)送過程就用到了文件上傳中的圖片上傳功能。將本地圖片、視頻、音頻等文件上傳到程序服務(wù)器上,再供其他用戶瀏覽或下載。這就造成網(wǎng)站每天都會有大量數(shù)據(jù)的流入,海量數(shù)據(jù)帶來用戶的同時,也帶來了一些安全問題。

而網(wǎng)站的開發(fā)者在網(wǎng)站存儲空間中,經(jīng)常會發(fā)現(xiàn)各類 xml、html、apk 等垃圾文件,這些文件或是注入廣告,或者散播涉黃視頻等資源,嚴重影響網(wǎng)站業(yè)務(wù)的運營。這些垃圾文件都是通過文件上傳功能上傳到網(wǎng)站存儲空間的。如果網(wǎng)站上傳程序沒有對用戶提交的數(shù)據(jù)進行檢驗或嚴格過濾,服務(wù)器就很容易被上傳修改過的數(shù)據(jù)。

文件上傳是數(shù)據(jù)安全中最容易被利用的一個環(huán)節(jié),要減少惡意文件上傳打擾,我們首先需要弄清楚它的原理。

文件類型和文件擴展名的作用

計算機的數(shù)據(jù)內(nèi)容一般存放在例如硬盤等等這類存儲硬件上。由于硬盤本身空間巨大,就像一個大倉庫,為了方便數(shù)據(jù)存儲以及管理,我們創(chuàng)造了文件的概念,也就是操作系統(tǒng)用文件的格式來封裝存儲于空間中的一段數(shù)據(jù)。

然而隨著互聯(lián)網(wǎng)的發(fā)展,從最開始的純文本文件,發(fā)展到今天各個類型的多媒體文件,如圖像、音頻、視頻等等,我們存儲的文件越來越多,種類也越來越豐富,文件體積也越來越大,如果不對這些文件進行區(qū)分,查找起來極為麻煩。所以文件格式(或文件類型)也就應(yīng)運而生。每一類文件,都能以一種或多種文件格式保存在電腦存儲中。每一種文件格式通常會有一種或多種擴展名可以用來識別,擴展名可以幫助用戶和應(yīng)用程序識別的文件格式。

例如,有一個文件被命名為 README.txt ,.txt 就是這個文件的擴展名,而 txt 適用于純文本文件。這類文件可能是一份文件內(nèi)容為純文本的說明文檔。

除此之外,擴展名還可以幫助操作系統(tǒng)判斷以何種方式讀取文件。例如 score.doc 這個文件,doc 文件可以用 Word 打開,那么 Windows 用戶在雙擊一個 .doc 文件后, Windows 系統(tǒng)會根據(jù)文件擴展名“doc”,在自維護數(shù)據(jù)庫表中查找“可以打開這個擴展名文件的程序”,如 Word 程序,之后系統(tǒng)會自動啟動 Word 程序,并通知 Word 去加載這個文件。

從這里可以看出,Windows 系統(tǒng)在打開一個文件的時候,只需要文件名中的擴展名就可以找到對應(yīng)的程序。所以,改變一個文件的擴展名,也會更改這個文件在系統(tǒng)中的默認打開方式。而且如果文件本身內(nèi)容不符合程序?qū)ξ募?nèi)容格式的預(yù)期,則打開會出錯,或者出現(xiàn)意料之外的結(jié)果。

瀏覽器如何識別打開文件

因為互聯(lián)網(wǎng)工具功能的逐漸完善,相比在本地打開文件,使用瀏覽器打開文件的幾率也逐漸增多了。那么,瀏覽器是如何確認訪問的資源是什么文件類型的呢?其實是通過響應(yīng)頭來判斷的。

當(dāng)用戶輸入 URL 后,資源所在服務(wù)器會進行響應(yīng),并給出 Content-Type 響應(yīng)頭,其值就是文件對應(yīng)的類型(MIME 類型)。如果瀏覽器支持該格式,則瀏覽器會嘗試渲染顯示對應(yīng)文件。

與 Windows 系統(tǒng)中相比,瀏覽器通常使用 MIME 類型,而不是文件擴展名來處理 URL。因此在響應(yīng)頭中添加正確的 MIME 類型就顯得非常重要,如果配置不正確,瀏覽器可能會曲解文件內(nèi)容,下載的文件也會被錯誤處理,進而影響網(wǎng)站的正常運作。

惡意文件是如何上傳的

最開始我們提到一些惡意資源會通過上傳文件的方式上傳,這些惡意資源的文件格式明明是正常格式,但是打開后卻會出現(xiàn)跳轉(zhuǎn)網(wǎng)頁等特殊訪問效果。這是怎么做到的呢?

其實原理很簡單,就是通過修改 MIME 類型作出的操作。比如上圖的 test.jpg 圖片。雖然 URL 鏈接的資源后綴是 jpg,但是真實的資源的文件類型是 text/html ,也就是網(wǎng)頁類型。

而這種網(wǎng)頁類型的文件支持 JS 代碼地嵌入,并可以通過這些代碼讓打開文件的用戶跳轉(zhuǎn)到指定網(wǎng)站。盡管這個現(xiàn)象看起來和 DNS 劫持有些相似,但是其實是不同的。關(guān)于 DNS 劫持的問題,大家可以查看**【白話科普】聊聊 DNS 的那些小知識》**了解更多。

如此看來這類惡意文件是通過修改文件 MIME 來達到效果的,那么我們是否可以通過限制 MIME 等方式來減少此類惡意文件的上傳與訪問呢?有的,方法還有很多種,我們接下來以又拍云存儲為例一一講解。

防止惡意文件上傳手段

身份溯源 - TOKEN 上傳

使用 TOKEN 上傳時 TOKEN 鑒權(quán)會使用終端上傳文件的標(biāo)識信息來計算 TOKEN,控制上傳有效期,固定上傳目錄或者上傳后綴。與一般的所有用戶使用服務(wù)器上一個操作員信息進行鑒權(quán)上傳的方式不同,云存儲提供的 TOKEN 鑒權(quán)可以實現(xiàn)更加細粒度的權(quán)限控制。

開啟 TOKEN 功能后我們可以為每個用戶分配一個獨立標(biāo)識,這樣用戶上傳的文件會按照標(biāo)識單獨建立目錄進行存儲。

X-Upyun-Uri-Prefix = /服務(wù)名/client_37ascii // 用戶標(biāo)識前綴,對應(yīng)存儲上的一個目錄,如 /client_37ascii/ X-Upyun-Uri-Postfix = .jpg // 限定上傳文件后綴

通過這種方式上傳的文件,可以通過標(biāo)識來快速進行身份回溯,找到是誰上傳了大量惡意文件,并進行處理。

文件證明 - Content-Type

第二種方式是從文件保存名方面進行限制。我們可以對上傳文件的 MIME 類型進行限制,例如限制上傳的圖片類為型 Content-Type 類型,這樣即便上傳了惡意文件,當(dāng)瀏覽器訪問的時候,瀏覽器會強制按照圖片格式進行解析,非圖片資源則會解析失敗,從而限制惡意文件的訪問。

云存儲的 REST API 與 FORM API 都支持強制設(shè)置 Content-Type 類型。其中 FORM API 更是支持多種限制方法:

具體的使用方法我們以 Java SDK Form API 上傳為示例:

//初始化uploader FormUploader uploader = new FormUploader(BUCKET_NAME, OPERATOR_NAME, OPERATOR_PWD); //初始化 policy 參數(shù)組 Mapfinal Map<String, Object> paramsMap = new HashMap<String, Object>(); //添加 SAVE_KEY 參數(shù)paramsMap.put(Params.SAVE_KEY, savePath);//添加文件上傳限制 paramsMap.put(Params.CONTENT_TYPE, "image/jpg"); //強制文件MIME類型 paramsMap.put(Params.ALLOW_FILE_TYPE, "jpg,jpeg,png"); //強制文件擴展名 paramsMap.put(Params.CONTENT_LENGTH_RANGE, "102400,1024000"); //強制文件大小,單位字節(jié) //執(zhí)行上傳 uploader.upload(paramsMap, file);

只要在上傳設(shè)置中設(shè)置了以上的任意參數(shù),如果有上傳請求,云存儲就會偵測上傳文件內(nèi)容,再用判斷值跟上傳指定值進行匹配,匹配成功則允許上傳,匹配失敗則返回 403 狀態(tài)碼。

拒絕訪問 - 邊緣規(guī)則

上面說到的兩個方法都是在上傳的時候排除惡意文件,那已經(jīng)上傳了的文件要怎么辦呢?

針對已經(jīng)上傳的偽裝成圖片的惡意資源,我們可以邊緣規(guī)則來識別。通過為每一條圖片鏈接增加一個隱式的云處理圖片參數(shù)讓惡意文件無法正常顯示,出現(xiàn) 405 錯誤反饋。

除去圖片限制外,如果在圖片空間內(nèi)發(fā)現(xiàn)了大量惡意 APK,我們也可以通過邊緣規(guī)則來快速禁止對它們的訪問。

熱門鏈接 - 統(tǒng)計分析

如果有很多文件,而且文件類型本身很多,排查的時間很長,需要馬上檢查出問題。也可以看一下又拍云的日志分析功能。這個功能每天都會統(tǒng)計每個服務(wù)下的訪問域名訪問情況,可以根據(jù)熱門文件、熱門客戶端、熱門引用文件、資源狀態(tài)碼、文件大小、熱門 IP 等維度來統(tǒng)計 TOP 1000 的分析數(shù)據(jù)。

統(tǒng)計分析可以幫助您綜合盤點服務(wù)情況。如果發(fā)現(xiàn)某一條資源、某一個 IP 有異常高頻率的訪問,可以及時定位進行排查。

信息安全 - 內(nèi)容識別

如果您的網(wǎng)站流量很大,而通過上面的方式進行限制不太合適的話。您還可以看一下又拍云聯(lián)合梵為公司的天清和天測兩款內(nèi)容識別工具。

這兩款工具以 AI 智能安全檢測為核心,通過機器學(xué)習(xí)的分類器算法,“智能”地對圖片、視頻等信息做審核,逐漸將“鑒黃師”從職業(yè)變成一種“算法”和“模型”。解放人力,并且大大提升處理效率,幫助企業(yè)減少投入成本。為客戶提供內(nèi)容安全預(yù)警、 內(nèi)容安全數(shù)據(jù)以及內(nèi)容安全?評等服務(wù),提供完善的網(wǎng)絡(luò)信息內(nèi)容安全解決方案,

目前已經(jīng)為數(shù)家互聯(lián)網(wǎng)企業(yè)以及政府部門提供了低延遲、高精度、可視化的整套從引擎識別到人工審核一站式內(nèi)容安全服務(wù)。

總結(jié)

以上是生活随笔為你收集整理的5招减少网站恶意文件上传的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。