2010-10-12 74 views
1

我有我從一個客戶端程序的cpp運行鍼對運行Apache服務器的HTTP POST字符串。以下是會得到來自客戶端發射POST字符串:加密HTTP POST數據

"POST %s HTTP/1.0\r\n" 
"Host: %s\r\n" 
"Content-type: multipart/form-data\r\n" 
"Content-length: %d\r\n\r\n" 
"Content-Disposition: %s; filename: %s\n" 

這將是很好,如果有人可以幫助我理解我怎麼能加密的Content-Disposition:現場坐鎮的數據。 另外,我注意到,即使我把東西無關的POST字符串的右邊,如:"POST %s HTTPGarbage/1.0\r\n",轉讓仍然發生,它會如果我瞭解這種行爲也隆重。

感謝,
薩揚

+0

是否使用HTTP或HTTPS?你的問題被標記爲兩個。 – casablanca 2010-10-12 05:31:01

+0

好吧,我猜測是否有辦法在加密數據時使用HTTPS,因此也就是標籤。 – Sayan 2010-10-12 05:33:04

+1

事實上,如果你使用HTTPS,所有的數據都會自動加密。 – casablanca 2010-10-12 05:35:29

回答

3

如果使用HTTPS(這基本上是基於SSL的HTTP/TLS),所有的HTTP流量將來自SSL TLS連接建立/瞬間被加密的(前提是你是使用適當的密碼套件),在任何HTTP通信之前。只有服務器證書(可能會顯示主機名)可見,並且在某些情況下(如果您還使用客戶端證書驗證),可能還會顯示客戶端證書。 URL和所有HTTP標題(和內容)將以這種方式使用SSL/TLS進行保護。

如果你不使用瀏覽器作爲客戶端,您可以利用現有的SSL/TLS庫,比如NSS(Mozilla的)或的OpenSSL。確保正確配置證書信任和主機名稱驗證。

+0

我忘了說,你可能會感興趣的類似[libcurl中(http://curl.haxx.se/libcurl/c/https.html)。 – Bruno 2010-10-14 09:57:14

+0

其實我不是使用庫過於熱衷,主要是因爲它們會增加大小(OpenSSL是3.5M左右)的軟件......我們只需要每個客戶端一個單發文件傳輸到服務器(該數據也不是超敏感的),不涉及證書握手。我正在考慮編寫一個簡單的定製加密技術,這個加密技術大多數時候都可以使用。 – Sayan 2010-10-14 19:03:25