むららら

webエンジニア | php | Laravel | まなびのあれこれ | しごとのあ…

むららら

webエンジニア | php | Laravel | まなびのあれこれ | しごとのあれこれ

最近の記事

Laravel学習記録 #040 バリデーションalpha_num

Laravelのバリデーションでalpha_numを使用すると日本語が通過できてしまうらしい。 alpha_num 例えば以下のように設定しても public function store(Request $request) { $validatedData = $request->validate([ 'test' => 'required|alpha_num', ]); } 入力値「あああ」のような日本

    • Laravel学習記録 #039 セッションを学ぶ

      Laravelでのセッションの扱いについて学習しましたので、その記録です。 Laravelのセッションについてユーザー情報を複数のリクエスト間で保存し、後続のリクエストでその情報にアクセスできるようにする技術 Laravelではセッションを保存する方法を様々にサポートしている(file、cookie、databaseなど) 設定はconfig/session.phpで行う セッションの操作のためのファサードやヘルパが用意されている 設定config/session.

      • Laravel学習記録 #038 クエリスコープを学ぶ

        Laravelのスコープについて学習したことをまとめております。 クエリスコープとはEloquent ORMを使用してクエリを再利用可能にするための機能 ローバルスコープとローカルスコープの2種類がある グローバルスコープは特定のモデルに対する全てのクエリに適用 ローカルスコープは明示的に呼び出されたクエリにのみ適用 グローバルスコープ 特定のモデルに対する全てのクエリに適用することができる。 スコープクラスを作成 Illuminate\Database\Elo

        • Laravel学習記録 #037 Gateを学ぶ

          LaravelのGateについて学習したものをまとめています。 Gateとは認証済みユーザー権限など認可を判定する機能 App\Providers\AuthServiceProviderで定義される Gateファサードを使用してAuthServiceProviderのbootメソッド内で定義 Gateを試してみるGate定義 認可タイプとして、roleが1,2の場合ならOKのものと3であればOKの2タイプ定義してみます。 defineメソッドの第一引数にGateの名

        Laravel学習記録 #040 バリデーションalpha_num

          Laravel学習記録 #036 クラスの定数定義を試す

          Laravelでクラスの定数定義を試したものをまとめています。 「定数」の扱いをLaravelの標準機能を使ってconfigに設定することがありますが、configで定数を管理するのはなぁ。。て時の別案です。 専用にクラスを作成し、定数を管理します。 定数クラスを試すクラス作成 app配下にConstsディレクトリを作成し、専用のクラスを配置します。 クラスのメンバ変数として定数を定義します。 /app/Consts/AppConst.php class AppCo

          Laravel学習記録 #036 クラスの定数定義を試す

          Laravel学習記録 #035 JSON返却を学ぶ

          LaravelのJSON返却について学習したものをまとめています。 LaravelでJSON形式で返却するにはいくつかの方法があるとのこと。 JSON返却の仕方jsonメソッドを使用する jsonメソッドを使用することで、配列をJSONへ変換できます。 ドキュメントにも以下のように説明されています。 public function index() { $data = [ 'id' => '1',

          Laravel学習記録 #035 JSON返却を学ぶ

          Laravel学習記録 #034 Hashファサードを学ぶ

          LaravelのHashファサードについて学習したものをまとめています。 Hashファサードについてパスワードの安全な保存や検証を簡単に行うことができる 標準でBcryptおよびArgon2(argon, argon2id)の2種類 Hashファサードのmakeメソッドでパスワードを生成 Hashファサードのcheckメソッドでパスワードを検証 試してみる簡単にパスワードの生成と検証を行なってみます。 設定 /config/hashing.php で行います。

          Laravel学習記録 #034 Hashファサードを学ぶ

          Laravel学習記録 #033 routes/console.phpを学ぶ

          Laravelの routes/console.php ついて学習したものをまとめています。 routes/console.phpって何?標準でインストール時にroutes/console.phpがあるが いまいちこのファイル使い道がわからず 今まで見て見ぬふりしてました。 このファイルに定義することで artisanコマンドで呼べる処理を登録できるらしいです。 初期では以下が定義されてます。 Artisan::command('inspire', function

          Laravel学習記録 #033 routes/console.phpを学ぶ

          Laravel学習記録 #032 Like検索を学ぶ

          LaravelでLike検索について学習したものをまとめています。 Like検索について(Eloquent、クエリビルダ)likeメソッドはないのでwhereメソッドにlikeを指定して使います。 通常のSQL同様「%」がワイルドカードです。 $results = Hoge::where('column', 'like', '%keyword%')->get(); 検索するキーワードにワイルドカード「%」「_」が含まれる場合を考慮するとエスケープが必要ですね。あと「\」

          Laravel学習記録 #032 Like検索を学ぶ

          Laravel学習記録 #031 SQLインジェクション対策を学ぶ

          LaravelでのCSRF対策について学習したものをまとめています。 SQLインジェクションについてSQL文の組み立てに問題がある場合に起こる可能性がある 悪意のあるユーザーにデータベースを不正利用されてしまう データの盗み出し、データベースの変更など被害はさまざま ざっくり攻撃の流れ① 攻撃者がウェブアプリケーションの入力フォームやURLパラメータに不正なSQLクエリを入れます。 ② SQLインジェクションが成功すると、不正なSQLクエリがデータベースに送信されま

          Laravel学習記録 #031 SQLインジェクション対策を学ぶ

          Laravel学習記録 #030 CSRF対策を学ぶ

          LaravelでのCSRF対策について学習したものをまとめています。 CSRFについてログイン機能のあるwebアプリケーションで発生しうる 認証済みユーザーに代わって不正なコマンドを実行するサイバー攻撃 不正なリンクを踏ませることで、利用者が操作したかのようになる 不正な送金やパスワード、ユーザーの変更など身に覚えのないことが行われてしまう。 ざっくり攻撃の流れ①太郎くんがWEBアプリにログインします。 ②認証されてログイン状態になります。 ③悪意のあるユーザーによ

          Laravel学習記録 #030 CSRF対策を学ぶ

          Laravel学習記録 #029 ミドルウェアを学ぶ

          Laravelのミドルウェアについて学習したものをまとめています。 ミドルウェアについてHTTPリクエストを処理する際に前処理や後処理を含める グローバルミドルウェア: 全てのリクエストに適用される。 ルートミドルウェア: 特定のルートにのみ適用される。 グループミドルウェア: グループに適用される。 ミドルウェアを使ってみるグローバルミドルウェアとしてログの出力ミドルウェアを例に作成してみます。 ミドルウェアの作成 php artisan make:middl

          Laravel学習記録 #029 ミドルウェアを学ぶ

          Laravel学習記録 #028 ルーティングを学ぶ

          Laravelのルーティング機能について学習したものをまとめています。 Laravelでのルーティングについてルーティングはルーティングファイルに記述する routesディレクトリ内のweb.phpやapi.phpなどのファイルに定義 web.phpはWebアプリケーション用、api.phpはAPI用のルーティング HTTPメソッドに応じてリクエストを処理 特定のURIへのリクエストを対応するコントローラーのメソッドに紐づけられる ルートに名前を付けることができる

          Laravel学習記録 #028 ルーティングを学ぶ

          Laravel学習記録 #027 独自認証を試して学ぶ

          Laravelの認証機能について学習したものをまとめてます。 Laravel Breezeなどのスターターキットを使わずに独自でログイン機能を作成してみます。 独自のログイン機能を作成してみる独自のと言っても、Laravelに備わった機能の範囲で実現します。 ・認証テーブルをusersではなくaccountsにする ・emailの代わりに、アカウントIDにする ・パスワードはLaravel標準のハッシュを使う とします。 テーブルの作成 Userモデルの代わりとなるAc

          Laravel学習記録 #027 独自認証を試して学ぶ

          Laravel学習記録 #026 認証について学ぶ

          Laravelの認証機能について学習したものをまとめてます。 認証機能についてLaravelの認証機能は「ガード」と「プロバイダ」で構成される ガードは、ユーザーがアプリケーションにアクセスするたびに、そのユーザーが認証されたユーザーであることを確認する方法 プロバイダは、データベースなどの永続ストレージからユーザーを取得する方法 config/auth.phpで設定可能 スターターキットとしてLaravel Breeze、Laravel Jetstreamなどがあ

          Laravel学習記録 #026 認証について学ぶ

          Laravel学習記録 #025 メール送信について学ぶ

          Laravelのメール送信について学習したものをまとめてます。 Laravelでのメール送信標準でSMTPなどを介して電子メールを送信するためのドライバーが多数用意されている config/mail.phpに設定がある メールの内容や送信先などをカスタマイズするためにはMailableクラスを使う メール送信はファサードを介して行う 試してみるローカルの確認のためmailtrapというサービスを使ってメールの確認をします。 .envファイル設定 メールの設定を定

          Laravel学習記録 #025 メール送信について学ぶ