2010-04-18 235 views
1

我和我的朋友正在製作一個程序。這個程序將把GET數據提交給我們的網頁。但是,我們不希望用戶以任何其他方式訪問網頁。我們可以阻止用戶使用HWID身份驗證共享程序,但是並不妨礙他們使用數據包掃描程序來獲取網頁的URL。我們考慮了我們將實施的用戶代理認證,但用戶代理很容易被欺騙。防止用戶通過網絡瀏覽器訪問網頁?

所以我的問題是,我們如何防止用戶直接訪問網頁,而不是通過程序?

即使你沒有一個完全可行的答案,任何有助於阻止他們的答案都會很好。

目前,我們將實施:

HWID認證使用程序 用戶代理身份驗證訪問網頁 即時IP黑名單的任何人訪問的網頁不正確的用戶代理

+0

我不知道是什麼樣的,你正在構建的應用程序,但我認爲漫長而艱難的是否我真的*需要*阻止人們通過其他客戶訪問我的服務,如果我這樣做,我的商業模式是否沒有問題。無論你做什麼,以安全的方式實施這個過程都需要花費很多時間並且很昂貴。它真的有必要嗎? – 2010-04-18 09:15:27

+0

@Pekka:我不希望我的產品泄漏並公開。如果我使用簡單的網頁並且沒有使用認證方法,用戶就不必購買產品。如果我添加了用戶名和密碼,用戶名和密碼將被共享。 – Rob 2010-04-18 09:17:56

+2

我不知道你的目標市場,但我認爲給出登錄是你能做的最好的。如果您看到可疑活動(例如,在同一小時內從三個不同的國家登錄同一帳戶),則可以使用所有方法關閉該帳戶。誰在乎他們使用的是什麼客戶?如果它是任何類型的商業軟件,你的大多數客戶都會害怕放棄他們的個人登錄憑證。 – 2010-04-18 09:28:56

回答

4

不要依賴於用戶代理或任何類型的瀏覽器指紋,HTTP頭很容易僞造/欺騙。

您可以爲請求添加一些祕密令牌(例如密碼/登錄)並通過SSL發送以防止竊聽。

或更好的是,使用SSL客戶端證書。

編輯你打算髮布VB程序嗎?如果是這樣,如bobince提到的那樣,你不可能阻止一個確定的黑客僞造請求。您可以提高酒吧,但通過默默無聞的將成爲安全。即使使用客戶端證書,黑客也能夠從程序中提取證書併發送修改後的請求。

只要您接受來自客戶端的請求,這些請求就可以僞造。處理它。

+0

是的,我們想過使用SSL,除了我不知道如何通過SSL訪問頁面 – Rob 2010-04-18 09:11:51

+0

所以,學習的時候,@Rob給自己買了一兩本書 – 2010-04-18 09:13:06

+0

是啊我假設。或者我可以使用谷歌,一切都是免費的。 – Rob 2010-04-18 09:13:43

0

一個選項是使用並驗證網絡瀏覽器不發送的自定義標題,我爲我自己的程序做了類似的事情。在您正在進行的其他驗證上做這件事。在服務器端,請讓您的服務器腳本驗證自定義標題,並在標題錯誤時簡單重定向。

+0

聽起來不錯,請您詳細說明我如何使網頁檢查頭部?也許還要詳細說明如何發送自定義標題。我做了PHP,我的好友VB.Net – Rob 2010-04-18 09:08:37

+0

也很容易被欺騙 – 2010-04-18 09:14:00

+0

安全通過默默無聞......如果有人攔截請求並看到自定義頭部會發生什麼? – Guillaume 2010-04-18 09:16:20

2

一個選項是您可以在請求標題中設置加密的標記。

令牌只能用於單次。如果再次發送相同的令牌,服務器將拒絕它,這意味着您必須在服務器端維護所使用令牌的副本。

+0

維護副本很容易,我只需使用MySQL數據庫。無論如何,我需要這樣做的IP黑名單 – Rob 2010-04-18 09:10:08

+0

這是不是比SSL更好的方式?導致加密邏輯在應用程序內部。 我們不能幫助,如果脂肪酶反編譯代碼!\ 這也是一個便宜的解決方案..而不是投資在SSL證書! – JChap 2010-04-18 09:20:49

+0

好點。一次性算法可能會在一天內得到反向設計,但使用加密密鑰也是如此。 – 2010-04-18 10:32:07

0
  • 嘗試加密使用長鍵(512位或更多)的所有網頁烏爾使用HWID作爲鹽。

    這種方式只有你的程序可以解碼並呈現爲一個網頁。

    en.wikipedia.org/wiki/Salt_%28cryptography%29

  • C#& VB。淨這裏:

    obviex.com/samples/hash.aspx

相關問題