我正在使用带有params的redirectTo()函数重定向到url中带有查询字符串的其他页面。出于安全考虑,这看起来并不吸引人,因为用户可以更改URL中的参数,从而改变插入到数据库中的内容。
我的代码是:
redirectTo(action="checklist", params="r=#r#&i=#insp#&d=#d#");
这周围有吗?我没有使用表单,我只是希望重定向,我希望目标操作/控制器知道我传递的内容但不在网址中显示。
答案 0 :(得分:2)
您可以对URL中的变量进行模糊处理。 CfWheels让这很容易。
您只需在set(obfuscateURLs=true)
文件中调用config/settings.cfm
即可启用网址模糊处理。
我确信这适用于linkTo()函数。我希望它也适用于RedirectTo()函数。我现在没有设置检查。但是,如果不适用于RedirectTo(),您可以obfuscateParam()
和deObfuscateParam()
函数为您完成工作。
警告:这只会让用户更难猜测该值。它没有加密价值。
要详细了解此信息,请阅读文档configuration and defaults和obfuscating url
答案 1 :(得分:0)
针对这种特殊情况的更好的方法是在[flash]中写入参数。1闪存与Ruby on Rails或ASP.Net中的ViewBag完全相同。它将数据存储在会话或cookie变量中,并在下一页加载结束时删除。这可以防止您回发长查询字符串,例如编码时间不到一年的人。 ObfuscateParam仅适用于数字并且非常不安全。任何高级用户都可以轻松地进行反混淆处理,对于真正以窃取数据为生的人来说更是如此。