プログラミング初学者のブログです。主に Ruby on Rails を学んでいます。
TECH CAMP受講中。

8月6日:mass assignmentの脆弱性とストロングパラメーターとプライベートメソッド

こんばんは。

今日は朝1時間、夜1時間、合計2時間勉強しました。

ちょっとhtmlいじってみた。

間違ってることあったら教えてもらえると嬉しいです。。

 

【mass assignmentの脆弱性

  • テーブルに対してデータを送信する時に、意図しないデータを勝手に書き換えられちゃったりすること。
  • 例えば、「名前」と「メールアドレス」だけ入力するフォームがあったとして、デベロッパーツールとかcurlとかで意図的にキーを書き換えて「パスワード」とかを指定してデータ送信して、書き換えできちゃうこと。

 

【ストロングパラメーター】

  • ↑の脆弱性を回避するのが、ストロングパラメーター。
  • 「これしか受け付けません!」っていうキーを指定する。

 def post_params

  params.permit(:キー名, :キー名)

 end

  • ストロングパラメーターはプライベートメソッドとしてコントローラーに定義する。

 

【プライベートメソッド】

  • コントローラーで「private」って書いた下に定義するとそうなる。
  • これはクラス外から呼び出せないらしい。
  • これのメリット
  1. いらんとこで呼び出すエラーを防げること
  2. private以下は気にしなくていいので可読性が向上すること

 

ふーん・・・