2015-12-02 69 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仅适用于数字,并且令人难以置信地不安全。任何电力用户都可以轻松地去混淆,对于真正谋生的人窃取数据更是如此。