2013-08-01 41 views
0

我用CURL發出了一個HTTP請求。Rails不解析我的HTTP查詢字符串

curl -X GET \ 
http://localhost:3000/api/v1/user_api/35/edit?old_password=aa&new_password=bb&password_confirmation=cc 

我的Rails服務器只認第一個參數

Started GET "/api/v1/user_api/35/edit?old_password=aa" for 127.0.0.1 at 2013-08-01 14:12:52 +0100 
Processing by Api::V1::UserApiController#edit as */* 
Parameters: {"old_password"=>"aa", "id"=>35} 

任何想法,這裏有什麼問題?

-------------------------------------編輯-------- ---------------------------------------------

警告!這是處理密碼重置的一個非常糟糕的瘋狂例子。

問題只針對用於捲曲和查詢解析問題的話題。

感謝您對您的所有意見

+2

不要使用GET來傳遞或更改密碼。它會將其放入瀏覽器的URL和服務器日誌的歷史記錄中。改用POST方法。 –

+0

@theTinMan嗨,謝謝你的評論。如果這是爲移動應用程序設計的api,POST方法還是比GET更可取? – GingerJim

回答

5

任何想法,這裏有什麼問題?

你傳遞的密碼以純文本的查詢字符串。

你怎麼樣通過不這樣做開始?


另外,你需要把你的URL中的報價爲&否則需要逃脫

curl -X GET \ 
"http://localhost:3000/api/v1/user_api/35/edit?old_password=aa&new_password=bb&password_confirmation=cc" 

不過說真的,請不要使用GET發送密碼數據

+0

這是一個暴露於移動應用程序的api。我猜這是無關緊要的,因爲它不會被任何瀏覽器記錄。現在對我來說加密是一個相當先進的話題,但是很確定,我會很快考慮這個問題 – GingerJim

+0

至於解決方案,我會在我的手掌握在我的開發機器上後立即進行測試,非常感謝。 – GingerJim

+2

哈哈,我並不是想笑,但它是專爲「移動應用程序」設計的,並不能減少安全威脅。 – naomik