2010-07-25 75 views
2

我正在開發一個新的Web應用程序,通過Ajax請求請求大量內容(文本,圖像,元數據)。關於保護Web應用程序數據源的想法

用戶沒有權限或登錄來訪問它。

我擔心的是,您可以輕鬆地查找數據源URL並直接在應用程序外部點擊以獲取大量數據。在某些方面,如果你可以做到這一點,你可能會在其他地方也有這個內容的靜態HTML頁面。

對方法進行混淆,隱藏或以其他方式直接訪問數據非常困難嗎?

例如:網頁應用HTML頁面包含一個每30分鐘重新發布的密鑰。在服務器端,基於該密鑰對數據進行模糊處理。爲了在應用程序之外獲取數據,您需要找出數據源,但也需要每隔30分鐘爲該密鑰刮頁面的額外步驟。

我意識到沒有100%的方法來阻止某人,但我更多地談論威懾。

+1

如果你擔心人們盜取你的代碼/內容,那麼不要將它發佈到世界上。通過登錄和完整的九碼安全保護您的隱私。 – 2010-07-25 01:22:28

+0

搜索SO可以給你一些關於如何保護它的想法。例如。 http://stackoverflow.com/questions/118910/best-way-to-secure-an-ajax-app – 2010-07-25 01:33:41

+0

格特 - 我可以使它私人或登錄後,但我不想這樣做,我相信我注意到原始問題中沒有登錄。我做了搜索,但沒有發現以有意義的方式解決這個問題。 – donohoe 2010-07-25 01:57:48

回答

4

在您的webapp中使用sessions。當收到第一頁的有效請求時,請注意(例如數據庫條目或其他機制,服務器端代碼可以訪問),並在第二頁中包含代碼,以便在處理沒有相應會話條目的請求時排除數據。

很明顯,關於如何做到這一點的具體細節會因語言而異,但大多數強大的Web平臺都會支持會話,主要是出於這種原因。

0

「有沒有對方法進行混淆,隱藏或以其他方式直接訪問數據非常困難的建議?」

回答你自己的問題,因爲如果數據值得,它會被獲得,因爲你混淆只是使它更難找到。

你可以在服務器端腳本處理ajax並返回數據檢查請求來自哪裏。

+0

沒有真正的答案....我正在尋找什麼幫助(或不)其他人在類似情況下的實際例子。我當然有我的一個概念(在這個例子中),但肯定有更多巧妙的方法。最終,這是一種威懾,而不是阻止某人的全面證明。 – donohoe 2010-07-25 01:27:17

2

如果你想顯示實時數據,並關心刮板......如果這是一個足夠大的關注,那麼我建議用閃光代替JS(AJAX)。使用閃光燈對象顯示數據。 Flash可以像AJAX一樣向服務器發送實時的發送/接收請求。但Flash的好處在於整個階段,數據,代碼等都在一個flash對象內,不能被刮掉。 Flash對象發出請求,你輸出的東西是一串加密的代碼。將其解密並在閃存中顯示。

+0

雖然現在您已經介紹了Flash的攻擊面,並要求用戶在連接時支持它。 – 2016-10-03 21:03:58