2015-01-13 81 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 

是否有辦法在沒有將數據填入Session的情況下解決這個問題?什麼是需要驗證的應用內部鏈接的最佳做法?

+0

什麼是不安全的URL? – infused

+1

您需要授權,而不僅僅是驗證。您也可以使用GUID而不是直ID,但如果您的應用具有適當的身份驗證/身份驗證,則這樣暴露數據沒有任何問題。 –

回答

0

在View中傳遞這樣的數據沒有這麼大的危害。

不過,如果你堅持有,然後檢查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'不過,你仍然可以唯一識別一個實體。問題是用戶我是否有權查看,修改他們試圖訪問的內容等。 –

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請求中可見的值GET方法GET參數永遠在url中,並且一個link_to使用GET方法 – Luis

+0

即時更新答案 – Luis

+0

看起來很有趣。 – Ajay

相關問題