ftp伺服器關於斷點續傳許可權的防範問題
假設ftp伺服器中存在乙個檔案readme.txt,檔案大小為1000bytes,連線上這個ftp伺服器(假設我有寫許可權,ftp伺服器是支援斷點再傳的),我本地中也有乙個叫readme.txt的檔案,檔案大小為500bytes。好了,我開始做壞事。
1、連線上這個ftp伺服器(用系統自帶的ftp:在內網的可能無法使用,因為ftp:用的是port模式)
2、dir(檢視readme.txt大小,確定了是1000bytes)
3、quoterest1000(告訴ftp伺服器我將要傳送的檔案是從檔案位置1000開始)
4、sendreadme.txt
5、dir(再次檢視readme.txt大小,現在readme。txt變成1500bytes了)
為什麼readme.txt會變大了?很簡單,因為我本地的那個readme.txt的500位元組上傳成功,並寫入到ftp伺服器中存在的那個1000bytes的readme.txt檔案中了。問題是出在第二條命令,如果沒有第二條命令,我的第4個命令(sendreadme.txt),就會得到乙個permissiondeny的錯誤,第二條命令是讓ftp伺服器信任我們將要進行乙個斷點再傳的操作,如果沒有第二條命令,ftp伺服器將以為我們進行的是乙個覆蓋原檔案的操作(覆蓋原檔案操作需要另外的許可權才可以進行)。
這個問題只是在允許斷點再傳的ftp服務中存在,但現在90%的ftp服務程式都是允許斷點再傳的,所以這問題在普遍的ftp伺服器都會存在。
防範方法:
如果一定需要給使用者上傳許可權的話,最好的防範方法是每個使用者都給他建立乙個目錄,將那個使用者的許可權完全鎖在這個目錄內,那麼使用者就沒有許可權可以檢視其它使用者的目錄,也就是說無法造成以上所說的破壞。
伺服器是否支援斷點續傳
你可以通過以下的命令來測試一下。linux 測試伺服器是否支援斷點續傳 localhost wget s 2 1 grep accept ranges accept ranges bytes 這樣可以到最開始99位元組,結果如下圖 現在我們嘗試以下方式 完成後,test.jpg完全等於billboa...
node靜態伺服器斷點續傳實現
當乙個伺服器支援range時,客戶端可以將需要傳送的內容分成很多份傳送給服務端,服務端可以每次接收部分內容。有了這樣的能力,遇到斷網的情況,我們可以在客戶端記錄下已經傳送的檔案範圍,網路恢復後再將剩餘部分傳送給服務端,這樣就實現了斷點續傳。具體流程如下 而伺服器會分如下兩種情況響應瀏覽器的請求 ge...
關於apache伺服器支援斷點續傳的一點理解
解決方案是 遇到text plain型別的就啟用gzip apache同時會自動啟用chunk 遇到二進位制型別的就不啟用gzip apache同時也就不會啟用chunk了 配置檔案修改 loadmodule deflate module modules mod deflate.so loadmod...