問題 ActiveRecordクイズです。SQLインジェクション可能なのはどれでしょう? (Railsバージョンは7.1.3.4、複数回答あり) 1️⃣ User.find_by(id: params[:id]) 2️⃣ User.where("id = #{params[:id]}") 3️⃣ User.order("id #{params[:order]}") 4️⃣ User.exists?(params[:id]) 正解と解説 SQLインジェクション可能なのは 2️⃣ と 4️⃣ 1️⃣ User.find_by(id: params[:id]) エスケープ処理が入るため これは安全な呼び出しです。 Railsガイドにも引用があります。 Model.find(id)やModel.find_by_*(引数)といったクエリでは自動的にこの対策が適用されます。 2️⃣ User.wher
![ActiveRecord SQLインジェクションクイズ (Rails 7.1.3.4)](https://cdn-ak-scissors.b.st-hatena.com/image/square/b9ba1b9d248c7836b9bbb118ca7752cb5524298f/height=288;version=1;width=512/https%3A%2F%2Fres.cloudinary.com%2Fzenn%2Fimage%2Fupload%2Fs--3vk7yhnN--%2Fc_fit%252Cg_north_west%252Cl_text%3Anotosansjp-medium.otf_55%3AActiveRecord%252520SQL%2525E3%252582%2525A4%2525E3%252583%2525B3%2525E3%252582%2525B8%2525E3%252582%2525A7%2525E3%252582%2525AF%2525E3%252582%2525B7%2525E3%252583%2525A7%2525E3%252583%2525B3%2525E3%252582%2525AF%2525E3%252582%2525A4%2525E3%252582%2525BA%252520%252528Rails%2525207.1.3.4%252529%252Cw_1010%252Cx_90%252Cy_100%2Fg_south_west%252Cl_text%3Anotosansjp-medium.otf_37%3AKoji%252520NAKAMURA%252Cx_203%252Cy_121%2Fg_south_west%252Ch_90%252Cl_fetch%3AaHR0cHM6Ly9zdG9yYWdlLmdvb2dsZWFwaXMuY29tL3plbm4tdXNlci11cGxvYWQvYXZhdGFyLzVlM2M5ODQyYmUuanBlZw%3D%3D%252Cr_max%252Cw_90%252Cx_87%252Cy_95%2Fv1627283836%2Fdefault%2Fog-base-w1200-v2.png)