少於 1 分鐘閱讀

strong parameter 是什麼?

strong parameter是一個rails的安全機制,他是為了解決「大量賦值(Mass assignment)」因為太方便而造成的安全性議題。

為什麼我們要用 strong parameter?

  • 簡單講就是限制可寫入的欄位,才能有效避免被Hack猜中其他欄位名稱,而造成不被預期的欄位寫入資料庫的疑慮。

如何使用 strong parameter?

  • 在進行資料庫存取時,另外定義一個XXX_params,並限制相關permit的欄位,取代原有params[]
  • 例如:
def update
 person.update(person_params)
 redirect_to :back
end

private

def person_params
 params.require(:person).permit(:name, :age)
end

參考

  1. https://ihower.tw/rails4/security.html
  2. https://github.com/rails/strong_parameters

留言