Как мне сделать "частный" ресурс RESTful? - PullRequest
1 голос
/ 24 октября 2011

Хорошо, возможно, это очень простой вопрос о REST-концепциях или безопасности Rails в целом, но потерпите меня.

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

Итак, я создал ресурс http://mywebsite.com/companies/locations,, который возвращает объект json с идентификаторами компании и каждой их широтой и долготой.

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

Я имею в виду, что любой может просто напечатать это в браузере и получить все компании, которые у нас есть. Это звучит не очень безопасно.

По-моему, был бы способ только для того, чтобы javascript ajax-вызов мог получить информацию и «спрятать» ее от всеобщего обозрения, или это просто случай безопасности из-за неясности?

Есть ли какое-то общее знание, которое я пропускаю или что-то в этом роде?

Спасибо.

Ответы [ 2 ]

2 голосов
/ 24 октября 2011

Да.Читайте о HTTP-аутентификации .Посмотрите скринкаст по HTTP-аутентификации в Rails .

. Есть и другие способы сделать аутентификацию с помощью REST, но это самый «естественный» и стандартизированный.

[EDIT] Извините, перечитайте ваш вопрос еще раз.Если вам нужно, чтобы данные отображались пользователю, совершенно невозможно их скрыть.Какой бы непонятный способ скрыть URL, запрос может быть легко перехвачен с помощью Firebug (например), вместе с данными ответа.

[EDIT 2] Ну, вы могли бы зашифровать данные на стороне сервера, а затем расшифровать их в Javascript, но все же код дешифрования доступен любому.Кроме того, я вполне уверен, что вы можете получить объект Google Maps из консоли отладки и просто прочитать с него метки.

1 голос
/ 24 октября 2011

Любые данные, которые необходимо отправить в браузер клиента (т.е. все, что будет использоваться JavaScript), уязвимы. Нет надежной защиты таких данных.

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