2015-12-02 4 views
1

Я использую функцию redirectTo() с параметрами для перенаправления на другие страницы с строкой запроса в URL-адресе. Для целей безопасности это не выглядит привлекательным, потому что пользователь может изменять параметры в URL-адресе, тем самым изменяя то, что вставляется в базу данных.CFWheels: перенаправление на URL с Params Hidden

Мой код:

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

Есть в любом случае вокруг этого? Я не использую формы, я просто хочу перенаправить, и я хочу, чтобы действие/Контроллер назначения узнало, что я передаю, но не отображаю его в URL-адресе.

+1

Вы можете сделать их переменными сеанса, но это еще один набор проблем. У меня возникнет соблазн создать форму со скрытыми полями, а затем разместить ее с помощью javascript. –

+0

Вы пытались возиться с использованием Flash? (примечание: NOT adobe flash). Объяснение по документам CFWheels: http://docs.cfwheels.org/docs/using-the-flash – beloitdavisja

+2

После дальнейшего рассмотрения, как только вы сделали свой материал базы данных, перенаправляйте снова на страницу, которая не разговаривает с вашей базой данных. –

ответ

2

Вы можете обфускать переменные в URL-адресе. CfWheels делает это очень просто.

Все, что вам нужно сделать, это позвонить set(obfuscateURLs=true) в файл config/settings.cfm, чтобы включить обфускацию URL.

Уверен, что это работает с функцией linkTo(). Я надеюсь, что он работает с функцией RedirectTo(). У меня нет настройки, чтобы проверить его сейчас. Но если это не работает для RedirectTo(), вы можете obfuscateParam() и deObfuscateParam() выполнять функции для вас.

Осторожно: Это усложнит пользователю возможность угадать значение. Он не шифрует значение.

Чтобы узнать больше об этом, пожалуйста, прочитайте документ configuration and defaults и obfuscating url

0

гораздо лучший подход к этой конкретной ситуации писать Params в [вспышки]. 1 Вспышка точно такая же, как в Ruby on Rails или ViewBag в ASP.Net. Он хранит данные в переменной сеанса или файла cookie и удаляется в конце загрузки следующей страницы. Это предотвращает отправку длинных строк запроса, например, тех, кто кодируется менее года. ObfuscateParam работает только с числами и невероятно небезопасен. Любой могущественный пользователь может легко деобфискурить, тем более с кем-то, кто действительно зарабатывает на жизнь воровством.

Смежные вопросы