2010-08-23 36 views

回答

0

我認爲使用查詢字符串是完全正常的,但有hackable URLs的情況,因爲它們對高級用戶更易於理解,並且對搜索引擎友好。例如,我認爲http://www.example.com/user/view/1234看起來比http://www.example.com/view.aspx?user=1234更直觀。

如果您使用的是IIS 7.0,則無需將應用程序更改爲使用漂亮的URL。 URL Rewrite Module和一些重寫規則應該足夠了。

+0

URL重寫模塊看起來很棒。你以前用過嗎? – Morgan 2010-08-23 05:43:26

+0

是的,我已經使用了幾次。它完全受到Microsoft的支持,除了必須瞭解正則表達式外,您無需擔心使用它。 – Mhmmd 2010-08-23 05:56:48

3

查詢字符串是完全正常的,如果你確定要鎖定什麼人的意圖。你應該檢查一個有效的值(數字,非空等等),如果你的應用程序有安全性,訪客是否有權查看用戶1245的個人資料..

您可以查看Session & ViewState,但QueryString似乎是您所追求的內容。

6

您的問題並不是真正的.NET問題......每個Web框架和Web開發人員都以某種方式處理這個問題。

大多數人都認爲,對於網站主要面向用戶的部分,您應該避免使用長查詢字符串,而採用對網站訪問者有意義的網址結構。嘗試使用邏輯層次結構,當訪問者閱讀時,他們可以推斷出他們在網站上的位置。在幾個地方點擊StackOverflow,看看他們用這個網址做了些什麼。你通常有一個很好的主意,你在看什麼,你在哪裏。

其他一些問題......雖然很多數據庫查詢都是使用主鍵完成的,但在URL中提供用戶友好的資源名稱(而不僅僅是主鍵)也是一個好主意。你可以看到StackOverflow在當前地址中使用主鍵「3544483」進行查找,但也包括一個SEO /用戶友好的url參數「are-querystrings-in-net-good-practice」。如果有人通過電子郵件將您的鏈接發送給您,您就會明白自己即將開放的內容。

我不太確定WebForms如何處理Url路由,但如果您正在努力掌握概念,請通過MVC NerdDinner教程。他們涵蓋了一些基本的網址路由,可以幫助。

1

如果可能,我認爲應該避免這種做法,特別是如果您傳遞純文本自動遞增ID。在我看來,你幾乎戲弄用戶操縱查詢字符串值,看看他們是否可以訪問別人的個人資料。即使採取了適當的安全措施(在呈現頁面之前驗證服務器端的請求),我仍然建議在這種特殊情況下加密查詢字符串參數。

0

要清楚地回答你的問題:是的,這不是一個好的實踐。事實上,這是一個網站的預期行爲。

我完全同意ShaderOp,你應該使用url rewritter來獲得一個很好的loocking url。事實上,我假設你會進行一些驗證,以避免有人操縱url並訪問他們不能訪問的數據。

0

查詢字符串正常,但不會危及他們的安全。

如果您正在訪問的配置文件是當前登錄的用戶,則不需要發送uid。只需轉到/ profile並加載當前登錄的用戶信息。

如果您正在查看其他會員資料,我建議只使用它的'用戶名',加密的ID或Guid。

將客戶ID暴露給客戶通常不是一個好主意。