2012-09-17 42 views
0

當我開發Wave Framework時,我非常關注API請求的安全模型。我必須確保API請求可以從任何可能的地方通過HTTP進行,同時可以防範潛在的中間人攻擊,數據篡改等等。簽署文件上傳的API請求?

我最終從輸入數據中構建了一個GET字符串,並用它從API中生成一個SHA-1哈希值,同時用API配置文件密鑰對其進行醃製。這非常有效,並且可以根據需要保護API。

但我的API還允許通過HTTP上傳文件等內容。目前,我完全忽略了文件上傳相關數據(我將其用於緩存簽名,但不用於數據驗證)。這意味着惡意的中間人在技術上可以在文件傳輸過程中更改文件內容。

有沒有其他的選擇?當然,我可以在服務器端發送文件時執行此操作(例如計算文件內容作爲驗證哈希的一部分),但如果上傳是通過Web瀏覽器並通過JavaScript啓動的,那麼這不是一種選擇嗎?

其他框架如何處理?我試圖搜索,但無法找到足夠的信息。謝謝!

回答

0

如果我理解你是正確的,你的框架會創建一個網頁,用戶可以上傳文件。在這種情況下防止中間人攻擊的唯一方法是使用ssl。

請記住,在這種情況下,中間人也可以在用戶上傳數據時更改用戶與之交互的網頁。假設您創建了一個JavaScript,它以某種方式使用用戶輸入的密碼對文檔進行了加密。中間人可以輕鬆更改javascript以加密僞造文檔並丟棄真實文檔。

如果安全性在網絡上存在問題,並且需要防範中間人攻擊,則需要SSL。沒有其他辦法了。

+0

不是我真正想找的答案,但我認爲在這種情況下,SSL確實是唯一可以提供幫助的東西。 – kingmaple