обеспечение удаленных ХФУ в Coldfusion - PullRequest
4 голосов
/ 17 октября 2010

У меня много проблем с поиском информации о защите удаленных функций на Coldfusion CFC для вызовов AJAX.Допустим, вы извлекаете конфиденциальную информацию для пользователя после входа пользователя на сайт с помощью вызова AJAX.Вы называете что-то вроде этого:

https://www.mySite.com/pathToCFC/MyCFC.cfc?method=getBankInfo&userID=2343

Так что это, очевидно, очень небезопасно, так как любой может вызвать это из браузера и изменить идентификатор пользователя, чтобы получить банковскую информацию другого пользователя.

Я читал об использовании атрибута role в удаленной функции и использовании cflogin для аутентификации пользователя, но даже если это будет сделано, вам не придется передавать userID, как вышеописанный вызов?Разве аутентифицированный пользователь все еще не сможет переключить идентификатор пользователя, чтобы узнать информацию о банке нового пользователя?

Ответы [ 2 ]

7 голосов
/ 17 октября 2010

Не передавайте ID пользователя от клиента.Идентификатор пользователя и другие конфиденциальные данные должны храниться на стороне сервера.Фактически, каждый бит данных, передаваемый клиентом, должен рассматриваться как подозрительный и проверенный.

Итак, если вы используете, например, cflogin и находитесь на одном сервере, либосеансовый сервер, затем сохраните идентификатор пользователя и любую другую важную информацию в области сеанса.

При каждом запросе вы извлекаете эти данные из сеанса, а не из того, что предоставляет клиент.

ЭтоХорошая отправная точка для Безопасность пользователей в Coldfusion

0 голосов
/ 18 октября 2010

Подождите секунду, если у вас есть пользователь X, который должен запросить его данные с сервера, вам не нужен его идентификатор, он у вас есть в сеансе или если вы используете функцию cflogin, у вас будет getUserAuth ().

У вас есть администратор, который может видеть данные других пользователей, и вы беспокоитесь о том, что он видит банковские реквизиты, вам нужны роли, роли cf или ваше собственное решение и т. Д.

В любом случае вам не нужно отправлять явный вызов "Дайте мне банковские реквизиты для пользователя 3456" ..

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...