LoginSignup
12
8

More than 5 years have passed since last update.

【whereRawは使わない】Laravelで複数条件をする方法【既出】

Last updated at Posted at 2014-12-04

背景

Laravelで複数条件を扱いたい旨をGoogle先生に尋ねると
whereRawを利用するよう解説するサイトを紹介される。
しかし、whereRawを利用すると直にSQL文を触るため、SQLインジェクションに利用される。
解説サイトも解説するだけしておいて、SQLインジェクションについては一切触れていないし
脆弱性だらだらのコードを掲載している。

既出だろうが、whereRawの拡散を防ぐために目を通していただきたい

whereraw.php
$user = Input::get("user");
$password = Input::get("password");//ハッシュ化するものとするが例なので省略
User::whereRaw("user = '" . $username . "AND password = '".$password."'"); 

whereRaw

これは、クエリビルダーで作成することができないSQL文を発行するときに利用する。
めったに使わないはずの関数。

whereは何度でも使える

where.php
$user = Input::get("user");
$password = Input::get("password");//ハッシュ化するものとするが例なので省略
User::where("user","=",$user)->where("password","=",$password); 

このように書くことができる。
whereの第3引数はエスケープされる(はず)なので、インジェクション対策を行うことができる。

Typoや勘違いがありましたら教えてください

12
8
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
12
8