2009-11-09 49 views
0

在編寫代碼時,請求帶有附加「下一個」查詢字符串參數的頁面很常見。urlencode所有下一個參數是否方便? - django

例如,在下面的模板代碼旁分回給用戶的頁面:

<a href="{%url some_view%}?next={{request.get_full_path}} 

這裏我下面一個約定:如果下一個功能,我沒有控制的東西,如用戶輸入的搜索關鍵字,我urlencode它。否則我不會。

<a href="{%url some_view%}?next={{request.get_full_path|urlencode}} 

不是爲每一個參數判斷是否會被用戶提供或不提供,這將是方便,如果我URLEncode的所有未來的字符串?會不會有副作用,我目前沒有看到?

回答

2

據我所知,網址中的任何東西都應該是urlencoded。

唯一的問題是你需要確保在讀取參數時反轉編碼。 django很可能已經爲你做了這件事。我需要查閱文檔和/或代碼來確認。

+0

+1:只有您可以防止基於僞造請求的攻擊,這些請求可以讓事情變得很酷,因爲太多錯誤類型的信息都是URL的一部分。如果他們的搜索字符串中包含「&somefield = someValue」,那麼您的應用程序將如何運行? – 2009-11-09 16:20:28

+0

不過,在他的問題的上下文中,下一個參數可以根據有效域列表進行檢查,或者要求它是相對的。 – 2009-11-09 16:21:51

相關問題