2010-02-01 178 views
2

我創建了基於https的web服務,我正在與朋友分享。我很擔心web服務的安全性,因爲如果從服務器端發出請求,用戶名和密碼將會起作用。但是,如果我想提供像Twitter這樣的小部件,我很擔心在html中擁有驗證代碼。公開Web服務,安全問題

什麼是行業最佳實踐?

問候 巴拉

+0

這個web服務是做什麼的? – ceejayoz 2010-02-01 16:08:19

+0

它實際上會返回一些關於我的網站的統計信息。 – Boolean 2010-02-01 17:10:20

回答

1

審查後

  • 客戶端證書 - 允許服務器識別客戶機 - 這是最安全的,認可的標準方式。
  • 一些web服務使用「客戶端證書」方法,但以本地方式實現。所以你公開了一些提供不對稱簽名交換的方法。您在哪裏與客戶的公鑰部分交換密鑰。調用所有其他服務方法將接受會話密鑰,該密鑰在客戶端匹配上進行檢查。 (這個會話密鑰也可以存儲在cookie中)。
  • 一次性密碼 - 相當快,您生成一些鹽,並以公開的方式提供給客戶端。客戶端必須每次都計算來自祕密ID和此鹽的散列,並將其用作每種方法的參數。
  • Google API/Yahoo API ...使用識別客戶的唯一字符串,當然它可以被泄露,但對於公共服務,足以識別問題以禁用帳戶。
+0

請問您可以擴展最後一點嗎? – Boolean 2010-03-07 06:03:16

+0

@Algorist例如,您生成256個字符長度的字符串,其中包含編碼或散列的連接:[用戶名],[發佈日期]等...因此,此字符串允許您識別用戶,這違反了您的一些規則Web服務使用情況。例如,它嘗試DOS攻擊,但他/她需要識別自己。妥協意味着這樣的ID可能被盜,但你無法知道用戶是否真實。所以谷歌/雅虎暫時凍結了這個帳戶,直到宣佈。 – Dewfy 2010-03-07 18:21:04