台灣最大程式設計社群網站
線上人數
1187
 
會員總數:246265
討論主題:189809
歡迎您免費加入會員
討論區列表 >> PHP >> 上傳檔案的功能,如果被人上傳病毒..(Linux:php-clamlib)
[]  
[我要回覆]
1
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
上傳檔案的功能,如果被人上傳病毒..(Linux:php-clamlib)
價值 : 100 QP  點閱數:3668 回應數:12
樓主

Kevin
門外漢
0 9
148 19
發送站內信

如題:

我自己寫了個前台上傳檔案的php page,思考說如果哪一天使用者上傳了病毒檔

伺服器端是否可以攔截(Linux),有沒有人做過類似的東西@@?

在GOOGLE上是查到有個套件,Clamav,Linux端的掃毒

不知道有沒有實作過,將php與Clamav結合,當上傳檔案過去後,Server端掃毒

如果確認是病毒,則返回錯誤訊息,並攔截讓使用者上傳不成功

以上 ^^ 大家討論一下

搜尋相關Tags的文章: [ php ] , [ 上傳 ] , [ 病毒 ] , [ 掃毒 ] ,
本篇文章發表於2011-05-15 23:27
1樓
回應

浩瀚星空
捐贈 VP 給 浩瀚星空 檢舉此回應
把附件或是上傳的目錄設定成不能運行就好了。只能下載上傳。至於會不會讓會員去下載到。這又是另外的解決問題了。

一般是可以安裝一下防毒的再上面。然後設定直接刪除或是轉移。然後開啟安全模式。(也就是上傳不直接往主要的目錄放)

不過一般我只保護SERVER的安全而已。
本篇文章回覆於2011-05-16 11:04
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
最有價值解答

溫子
捐贈 VP 給 溫子 檢舉此回應
不考慮這個問題,不實際!!

1. Linux 不會執行 exe
2. 檔案要完全傳到主機上才可能掃毒,檔案既然都已經傳完了,
又要花多少時間去掃毒丟錯誤訊息,早就 timeout 了...
3. 客戶端自我防護能力已經足夠了,去承擔伺服端病毒特偵碼的更新以及誤判的可能,
還不如一開始就不做...

本篇文章回覆於2011-05-16 13:22
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
3樓
回應

浩瀚星空
捐贈 VP 給 浩瀚星空 檢舉此回應
原則上我認同溫子的看法。

所以一般SERVER最多就是保護上傳的東西不能在伺服上運行就行了。
不管它是不是病毒。反正在網頁上最多就是檔案處理。

除非哪天有那種上傳過程就會中毒的病毒再來說。(真有這種病毒就真的完了)
本篇文章回覆於2011-05-16 16:01
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
4樓
回應

溫子
捐贈 VP 給 溫子 檢舉此回應
>> 上傳過程就會中毒

有這樣的方法做成病毒就太可惜了,直接就已經是種入侵管道了...
本篇文章回覆於2011-05-16 18:09
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
5樓
回應

小羊窒息
捐贈 VP 給 缺氧的羊:窒息 檢舉此回應
假設:

樓主是把 [駭客工具] 當成病毒的一種,
希望有一種軟體可以在 user 上傳有問題的檔案時,自動發現...

=======================

基本上 安裝防毒軟體(linux版),多多少少可以解決,
然而病毒本身就只是程式碼,要認定為病毒的話,需要有認定條件,
這就得看防毒軟體公司的訂定條件了..


以Notron Antivirus來說 (我並不使用這家的,但公家機關有在用)
我曾經上傳 [所謂的駭客工具] 到【我所管理的平台】,要進行資料管理
結果硬是被防毒軟體殺掉 @_@....

因此,我只能自己寫一組相同功能管理工具,再上傳上去(就沒有被當成是病毒了)
本篇文章回覆於2011-05-16 19:21
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
6樓
回應

溫子
捐贈 VP 給 溫子 檢舉此回應
To 小羊

搞不好換個壓縮程式,或者用兩套壓縮程式,
先 rar 再 zip 不然在包層 7z 有很大的機會可以騙過 ... Orz
本篇文章回覆於2011-05-17 01:22
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
7樓
回應

小羊窒息
捐贈 VP 給 缺氧的羊:窒息 檢舉此回應
to 溫溫

上傳病毒不一定要讓管理者執行呀 XD
(雖然網路上有很多利用 套件漏洞的工具有一堆,而且會去更新至最新版的人相對少數)


之前我也遇過 利用公司求職信的功能,上傳駭客工具(asp.net版)的大陸人,
結果那個工具就被我接收了 XD...


我只能說,只要是軟體,多多少少都會有漏洞(有人為的,有非人為的)
在人的能力還不足的情況下,
能夠有防毒軟體(或是 電子鎖之類的軟體來鎖定硬碟空間),
都是不錯的配套方式
(換句話說,就跟買幾包乖乖放在機房是一樣的意思 XD)
本篇文章回覆於2011-05-17 01:58
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
8樓
回應

小朱
檢舉此回應
應該要先預防不要讓別人上傳可在電腦執行的檔案,所以上傳程式就要先過濾上傳的檔案,如exe、php、js....不可上傳,還要將上傳檔案放置的資料夾安全性設定,設定其不可以執行應用程式之類的,伺服器欄截病毒要用防毒軟體,讓人可以上傳病毒或是讓人可以上傳程式操作系統,這些都是要先預防的,所以你的問題應該要先防止別人上傳對電腦有害的檔案,若無法做到上傳過濾,那前台就不要開個洞讓人家有機會.
本篇文章回覆於2011-05-17 09:27
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
9樓
回應

浩瀚星空
捐贈 VP 給 浩瀚星空 檢舉此回應
一般我是設定成不可執行的。我自已的伺服器是沒在裝防毒的。總覺得那有機會會操效能。
不過我倒是有用另外一台機器定時去掃描我伺服器的上傳檔案。但不做刪除的動作。(就是會怕會發生小羊說的事件,誤判砍掉,因為遠端殺掉的檔案很難還原)
本篇文章回覆於2011-05-17 09:50
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
10樓
作者回應

Kevin
檢舉此回應
各位好:

回溫子 >> 因為上傳至server的東西可被特殊權限的使用者下載,所以才會有想在server端把檔案檔下來的需求,儘管client的防護措施已經做出來,但還是怕會有個萬一

回小朱 >> 我是只限定讓使用者上傳圖檔(jpg,png,bmp...),但如果病毒是被改了副檔名的檔案之後被上傳呢? (有那種副檔名是.jpg的病毒嗎 = = ?)

前幾天實作出一點東西,我在Linux Server端安裝了Clamav的防毒軟體

使用者上傳之後,會先將檔案pass到一個temp(暫存)資料夾,是www沒辦法access到、權限設定為不可執行

--> exec();

等到scan通過,才將檔案移到可被access的地方;沒通過則砍掉,reponse一個訊息

但以上就出現了溫子所說的狀況,執行的時間較久,如果檔案一多,會耗費更多時間 (平均掃一個檔需2-3秒)

本篇文章回覆於2011-05-19 21:00
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
11樓
回應

小朱
檢舉此回應
就算改了副檔名,不能執行就是不能執行~
本篇文章回覆於2011-05-20 13:37
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
12樓
回應

浩瀚星空
捐贈 VP 給 浩瀚星空 檢舉此回應
你的第一個做法就已經不太符合安全性的做法。
而且你想要的防護倒底是指什麼???不想讓客戶中毒嗎??

上面所說的都是指不讓SERVER中毒而已。至於客戶中不中毒大多只是依靠客戶端本身的防毒能力。
而且就算你說再SERVER端做防毒。也是有個萬一啊。因為你也該知道,防毒也不過就只是防已知病毒。
這點是不管在客戶端或是伺服端都是同樣的道理。

說真的實在是沒有那個必要去幫客戶做這樣的動作。也沒必要先掃毒再做轉移檔案的動作。
真的擔心病毒的問題的話。就定期掃描客戶上傳的東西就行了。

因為你就算花再多的功夫。還是一定會有個萬一。不是一萬。
本篇文章回覆於2011-05-20 13:40
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
   
1

回覆
如要回應,請先登入.