2011-12-19 212 views
0

是否有可能隱藏URL中的查詢字符串?隱藏URL中的查詢字符串

我計劃去會話變量..但它只能在有限的時間。

我的網址和查詢字符串是

的Default.aspx?A = B & C = d

我需要爲Default.aspx的

我嘗試進行加密和解密。但是可以在地址欄中更改這些值。

+0

你是什麼意思,但「它只在有限的時間內有效」。 – Strillo 2011-12-19 10:22:17

+0

@Strillo他意味着會話過了一段時間..以及它的變量。 – Shai 2011-12-19 10:24:08

+0

如果這些值需要長時間存儲,您可以增加會話持續時間或其他緩存解決方案。 – Strillo 2011-12-19 10:28:48

回答

1

如果會話變量是不適合你,嘗試在cookies中存儲的值。

+0

謝謝Huske .. Cookies是安全的嗎? – 2011-12-19 10:24:26

+0

安全嗎?它們將位於您的用戶計算機上,並將轉移給您。如果你想安全地發送它們,你需要使用HTTPS。 – 2011-12-19 10:34:11

+0

好吧..我開始使用查詢字符串,因爲它不會過期,並且可以隨時運行該頁面。查詢字符串的唯一問題是可以在地址欄中更改。我需要完全像查詢字符串功能和作爲會話隱藏工作。餅乾會成爲兄弟? – 2011-12-19 10:47:40

1

在您的表單上使用POST操作而不是GET。值仍然能夠雖然被改變,他們只是將無法看到你的URI

+0

感謝您的回覆CraPo!請給出任何例子... – 2011-12-19 10:27:02

+0

在你的'FORM'標籤集中'ACTION = POST'而不是'ACTION = GET' – CraPo 2011-12-19 10:51:07

+0

如何在下一頁獲取這些值? – 2011-12-19 10:54:29

-1

使用URL重寫或URL路由做到這一點....

+0

感謝您的回覆Gaurav Agrawal!我dono關於URL重寫和路由...請給任何例子... – 2011-12-19 10:25:31

+0

這個答案不是特別有用。如果有人不知道URL重寫或路由是什麼,那麼這不會告訴他們很多。如果他們知道這些事情是什麼,他們可能不會問這個問題。 – 2011-12-19 16:10:21

0

我不使用.NET,但你可以使用POST代替GET。

1

Ganesh神,

你要明白一個網址是什麼,

的URL是能夠訪問互聯網上的資源地址。

所以我們不應該在URL中隱藏任何東西,因爲這就像是說某人「去倫敦約翰街127號」,你不想讓他去試試126(因爲他不允許)!

爲什麼要隱藏一個url參數?大多數時間,因爲用戶必須具有正確的權限訪問資源,所以在這裏你的解決辦法是:

  • 在會話中存儲的用戶ID,當用戶試圖訪問的ressource檢查他擁有強制特權

  • 或者讓您的產品ID不是整數(或者在數據庫中添加一列「ProductIDUrl」),就像guid一樣,因此沒有人可以猜出產品ID。

1

如果安全是您的問題,那麼security by obscurity不是最好的方法。通過POST發送數據不會解決問題,除非您使用某種加密。

你可以很容易地加密的網址btw。不推薦使用Session,因爲它會給服務器帶來額外的負擔。

Cookie可能會影響性能。

如果您只關心安全性,那麼加密查詢字符串是一個選項。