LoginSignup
0
0

More than 1 year has passed since last update.

Laravel url へルパ関数の意外な落とし穴

Posted at

環境

Laravel Version 8.68.1

概要

Laravelでよく使うurlへルパ関数ですが意外な落とし穴を見つけました。

url('/hoge/hoge');

それは「データベースにURLを登録する際にurlへルパ関数を使うと最悪の場合サイトの信頼性を損ねる可能性がある」ということです。

どういうことか

下記の例を見てみましょう

HogeController.php
        App\Models\HogeTable::create([
                'title' => 'タイトル',
                'text' => 'テキスト',
                'link' => url('/hoge/1'),
        ]);   

このサービスが仮に http://example.com というドメインでこのサービスを運営していたとします。
この場合linkカラムには http://example.com/hoge/1 という値が入ります。

しかし、逆引きされたIP http://93.184.216.34 でアクセスして、この処理が実行された場合、linkカラムには http://93.184.216.34/hoge/1 という値が登録されてしまいます。

つまり、悪意のあるユーザーがこのIPを任意のドメインのDNSレコードに紐づけてサービスにアクセスして、この処理を実行した場合、任意のURLを登録されてしまいます。

登録された悪意のあるURLに他のユーザーがアクセスしてしまった場合にサイトの信頼性を大きく損ねてしまうというわけです。

対策

  • .envのAPP_URLからURLを取得するようにする
  • Webサーバーを正しく設定する
0
0
0

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
0
0