2012-07-31 21 views
0

我正在使用此方法驗證表單中的日誌。如何限制客戶端訪問包含URL中參數的網頁

index.jsp - >包含<form action=login.jsp method="post"> - >值提交 - >login.jsp - >如果登錄成功 - >response.sendRedirect("index.jsp?valid=1"); - >如果不是? - >response.sendRedirect("index.jsp?valid=0");

然而,任何用戶都可以簡單地鍵入的index.jsp有效= 1作爲URL,然後他會「登錄」,這是正確的做法,如果是的話,我怎麼能禁止某人操縱這些網址。

回答

0

我們大多數人使用cookies進行身份驗證,而不是任何可被任何人黑客入侵的URL參數。

+2

Cookie可以由任何人很容易被黑客攻破。關鍵是不要使用0或1,而要依靠共享密鑰。 – biziclop 2012-07-31 19:13:23

0

不,這不是正確的方法,不,不能限制用戶。我的意思是,這怎麼可能?

該信息應該存儲在會話的服務器端。

除非你爲自己的學習做這件事,否則我認爲你不應該手工編碼認證/授權,有很多庫可以做到這一點,使用它們不僅更容易,而且更安全。

+0

但我只是不知道如何重定向到我想要的頁面,並告訴該頁面這個人已成功登錄... – 2012-07-31 19:10:36

+0

您可以按照您的方式重定向他們,這不是問題所在。問題是任何人都可以猜出0或1的意思。現實生活中發生的事情是生成一個隨機數(會話ID),它存儲在服務器中的會話中,並將該數字放入URL或Cookie中併發送給客戶端。每當客戶端再次訪問該站點時,每個頁面都會將該號碼與存儲在服務器上的號碼進行比較。如果它們匹配,則用戶與登錄的用戶相同。但是,您真的不應該親自去做。 – biziclop 2012-07-31 19:15:38

相關問題