2015-12-02 55 views
1

我使用帶參數的redirectTo()函數將重定向到具有URL中查詢字符串的另一個頁面。出於安全考慮,這看起來並不吸引人,因爲用戶可以更改url中的參數,從而改變插入到數據庫中的內容。CFWheels:重定向到隱藏了參數的URL

我的代碼是:

redirectTo(action="checklist", params="r=#r#&i=#insp#&d=#d#"); 

反正是有解決這個?我沒有使用表單,我只是希望重定向,我希望目標操作/控制器知道我傳遞的內容,但不顯示在url中。

+1

你可以讓它們成爲會話變量,但是會出現另一組問題。我很想創建一個帶有隱藏字段的表單,然後用javascript發佈。 –

+0

您是否嘗試過使用Flash? (注意:不是Adobe Flash)。 CFWheels文檔的解釋:http://docs.cfwheels.org/docs/using-the-flash – beloitdavisja

+2

進一步檢查後,一旦你完成了你的數據庫的工作,再次重定向到一個不與你的數據庫交談的頁面。 –

回答

2

您可以混淆URL中的變量。 CfWheels使這非常簡單。

您只需在config/settings.cfm文件中調用set(obfuscateURLs=true)即可打開URL混淆處理。

我相信這適用於linkTo()函數。我希望它也可以與RedirectTo()函數一起使用。我現在沒有設置檢查它。但是如果對RedirectTo()不起作用,您可以使用obfuscateParam()deObfuscateParam()函數爲您工作。

注意事項:這樣做只會讓用戶更難猜測值。它不加密值。

爲了更多地瞭解這一點,請仔細閱讀該文檔configuration and defaultsobfuscating url

0

更好的方法,以這種特殊的情況是寫PARAMS到[閃]。閃存與Ruby on Rails或ASP.Net中的ViewBag完全相同。它將數據存儲在會話或cookie變量中,並在下一頁加載結束時刪除。這樣可以防止您發佈長期查詢字符串,例如已編碼不到一年的某人。 ObfuscateParam僅適用於數字,並且令人難以置信地不安全。任何電力用戶都可以輕鬆地去混淆,對於真正謀生的人竊取數據更是如此。