我使用带参数的redirectTo()函数将重定向到具有URL中查询字符串的另一个页面。出于安全考虑,这看起来并不吸引人,因为用户可以更改url中的参数,从而改变插入到数据库中的内容。CFWheels:重定向到隐藏了参数的URL
我的代码是:
redirectTo(action="checklist", params="r=#r#&i=#insp#&d=#d#");
反正是有解决这个?我没有使用表单,我只是希望重定向,我希望目标操作/控制器知道我传递的内容,但不显示在url中。
我使用带参数的redirectTo()函数将重定向到具有URL中查询字符串的另一个页面。出于安全考虑,这看起来并不吸引人,因为用户可以更改url中的参数,从而改变插入到数据库中的内容。CFWheels:重定向到隐藏了参数的URL
我的代码是:
redirectTo(action="checklist", params="r=#r#&i=#insp#&d=#d#");
反正是有解决这个?我没有使用表单,我只是希望重定向,我希望目标操作/控制器知道我传递的内容,但不显示在url中。
您可以混淆URL中的变量。 CfWheels使这非常简单。
您只需在config/settings.cfm
文件中调用set(obfuscateURLs=true)
即可打开URL混淆处理。
我相信这适用于linkTo()函数。我希望它也可以与RedirectTo()函数一起使用。我现在没有设置检查它。但是如果对RedirectTo()不起作用,您可以使用obfuscateParam()
和deObfuscateParam()
函数为您工作。
注意事项:这样做只会让用户更难猜测值。它不加密值。
为了更多地了解这一点,请仔细阅读该文档configuration and defaults和obfuscating url
更好的方法,以这种特殊的情况是写PARAMS到[闪]。闪存与Ruby on Rails或ASP.Net中的ViewBag完全相同。它将数据存储在会话或cookie变量中,并在下一页加载结束时删除。这样可以防止您发布长期查询字符串,例如已编码不到一年的某人。 ObfuscateParam仅适用于数字,并且令人难以置信地不安全。任何电力用户都可以轻松地去混淆,对于真正谋生的人窃取数据更是如此。
你可以让它们成为会话变量,但是会出现另一组问题。我很想创建一个带有隐藏字段的表单,然后用javascript发布。 –
您是否尝试过使用Flash? (注意:不是Adobe Flash)。 CFWheels文档的解释:http://docs.cfwheels.org/docs/using-the-flash – beloitdavisja
进一步检查后,一旦你完成了你的数据库的工作,再次重定向到一个不与你的数据库交谈的页面。 –