Laravelのセキュリティ対策【現役エンジニアが解説】

PROGRAM

今回は、Laravelのセキュリティ対策について、簡単に解説していきます。

SQLインジェクション

LaravelではSQLインジェクションのセキュリティ対策がされています。

ただし、whereRawメソッド等の生のSQLを書く際には自分で対策が必要です。

$users = DB::table('users')->whereRaw("id = {$id}")->get();

例えば、上記のようなケースでは、SQLインジェクションの脆弱性があり、以下のような対策が必要です。

$users = DB::table('users')->whereRaw("id = :id",['id' => $id])->get();

XSS

LaravelにおいてはXSSのセキュリティ対策も可能です。

基本的にBladeでは以下のように変数を{{ }}で囲って出力します。

{{ $script }}

このようにすることで、htmlspecialchars関数が通されることになります。

CSRF

Laravelの場合、CSRFのセキュリティ対策は容易です。

Bladeで以下のようにform要素の中に@csrfを入れるだけです。

<form>
	@csrf
</form>

このようにすることで、HTMLには下記のinput要素が出力されます。

<input type="hidden" name="_token" value="トークン文字列">