2013-03-21 58 views
0

嗨,感謝您的時間。我正在開發一個網絡應用程序,我的登錄客戶將能夠觀看視頻課程。現在我使用GET通過URL傳遞關於視頻類型的信息。例如:?在後端應用程序中獲取vs發佈vs會話

用戶1具有MASTER課程 - >>>> URL = curso.php頁=主

用戶2具有基本課程 - >>>> URL = curso.php頁=基本

你看,我認爲這裏存在一個安全問題,因爲如果用戶2輸入他的URL「page = master」,他將能夠觀看他不允許的視頻。

因此,我要爲每個頁面編寫安全檢查,以查看該用戶標識可以訪問所需頁面的標識。

但我認爲這太沒用了。如果我在按鈕上使用POST方法,並通過POST提交數據,那麼假定給定用戶無法看到不適合他的內容,是否完全安全?畢竟,URL總是相同的,就像curso.php。

有使用會話的可能性,但我可以用提交按鈕或類似的東西定義一個會話值?

我知道,我知道很多新手的問題,但這只是我的第二個後端系統,我填補了像缺少很多安全實踐的地方。

將感謝任何幫助或提示。

非常感謝,對不起我的英文不好。

+0

這是一種主觀性問題,有很多事情可以通過它阻止用戶訪問url中的內容 – 2013-03-21 14:04:29

+0

使用'get'可以讓用戶爲您的頁面添加書籤。 – Voitcus 2013-03-21 14:05:00

回答

4

因此,我正在爲每個頁面編寫安全檢查,以查看該用戶標識可以訪問所需頁面的標識。

好。這是你需要做的。在向用戶提供任何數據之前,請檢查他們是否有權查看該數據。

但我認爲這太多沒用的工作。如果我在按鈕上使用POST方法,並通過POST提交數據,那麼假定給定用戶無法看到不適合他的內容,是否完全安全?畢竟,URL總是相同的,就像curso.php。

在大多數瀏覽器中,只需少於六次的點擊來檢查用於發出請求的發佈數據。 POST對用戶隱藏任何東西,它只是避免在他們的臉上揮動它。

有可能使用會話,但我可以用提交按鈕或類似的東西定義一個會話值?

您無法定義會話值客戶端。數據必須在請求中發送到服務器。

+0

感謝Quentin,一直保持檢查系統的頁面,直到學習如何實現HTTPS和SSL。 – 2013-03-21 14:33:35

+0

SSL將保護來自第三方的數據。它不會將它從發送它的人中隱藏起來。 – Quentin 2013-03-21 14:34:02

2

只是繼續使用POST是絕對不安全的。例如,您可以使用REST工具輕鬆啓動POST請求。

我不知道你是否使用底層框架(我會推薦這個,因爲你基本上是要求用戶權限管理),但如果不是,我會明顯地將權限保存在用戶類或會話中,並且檢查給定的參數。

基本上,如果您使用POST或GET,沒關係。但是HTTP說,如果你想從服務器檢索數據並使用POST,那麼你使用GET,如果你想發送數據到服務器。

因此,使用GET併爲自己寫一個很好的類,其中存儲經過身份驗證的用戶的權限,並檢查用戶是否能夠檢索所需的內容。

+1

也很容易創建一個簡單的HTML文件,其中包含「

'你不必使用任何工具發送'post'變量,只是一個記事本和瀏覽器:-) – Voitcus 2013-03-21 14:03:40

+0

這是真的,只是想明確說明POST不是一些看不見的魔法。 – 2013-03-21 14:04:41

-3

在任何情況下,與GET相比,Session和都會對您的安全性有很大提高,這是肯定的。但你仍然需要在你的頁面上進行檢查,雖然

+1

僅僅因爲你無法在URL中看到POST數據並不意味着它奇蹟般的無法到達服務器。 – 2013-03-21 14:01:04

+0

這不是你如何發送和接收數據的問題。這是服務器端安全檢查的問題。 – mimipc 2013-03-21 14:01:39

+1

我只是說如果你想阻止用戶訪問未經授權的頁面,GET就是最差的。不是每個人都知道如何調整一個POST值,而任何用戶都可以清楚地看到如何修改一個URL – 2013-03-21 14:02:35

3

POST與GET一樣不安全。 POST不能用於增加安全性。您必須根據當前登錄的用戶信息在服務器上執行檢查。因此,請使用GET,因爲這是HTTP被設計爲使用的方式,並在服務器上進行必要的檢查。

您需要某種身份驗證才能做到您想要的。