2015-01-13 2 views
-1

Я хочу передать данные с точки зрения (ссылки) на контроллер, чтобы он мог найти соответствующую информацию. Услуги для компании, в данном случае.Безопасное пересылку данных из вида в контроллер в рельсах

Я вижу примеры, когда люди были добавлены в Params, как это:

<div> 
    <%= link_to 'Services', :controller => 'company', :action => 'services', :company_id => @company.id %> 
</div> 

... но это приводит к прозрачному (небезопасному) URL, как это:

http://localhost:5000/company/services?company_id=17 

Есть ли способ обойти это без заполнения данных на сессии? Какова наилучшая практика для ссылок внутри приложения, требующих аутентификации?

+0

Что небезопасно в отношении URL-адреса? – infused

+1

Вам нужна авторизация, а не только проверка подлинности. Вы также можете использовать идентификаторы GUID вместо прямых идентификаторов, но нет ничего плохого в том, чтобы выставлять такие данные, если у вашего приложения есть собственный auth/auth на месте. –

ответ

0

Это не является серьезным ущербом для передачи данных, подобных этому в представлении.

Тем не менее, если вы настаиваете на том, а затем проверить prettyurls:

http://railscasts.com/episodes/314-pretty-urls-with-friendlyid 

Перед мы должны иметь действительные проверки в контроллер & файлы модели.

1. Valid Checks and redirection in Controller is helpful. 
2. Depending on need adding validations in model can be a good support. 
+0

. Довольно URL-адреса aren ' t любой другой, тем не менее, вы все еще однозначно идентифицируете сущность. Проблема заключается в том, разрешено ли пользователю I просматривать, изменять и т. Д., К чему они пытаются получить доступ. –

0
<%= link_to "Sign in", new_session_path(:id => Base64.encode64("1")) %> 

и в контроллере

def new 
    id=Base64.decode64(params[:id].to_s) 
end 

это еще одна форма для создания связи с данными

проверить маршруты с командой ООН консольных рейк маршруты

для получения дополнительной информации прочитайте это документация

http://apidock.com/rails/ActionView/Helpers/UrlHelper/link_to

+0

, если вам не нужно значение, видимое в url, используя Base64 в запросе для METHOD. ПОЛУЧИТЕ параметры, входящие в url навсегда, и один link_to для работы с GET METHOD – Luis

+0

im update ответ – Luis

+0

выглядит интересным. – Ajay