目次
1.依存関係を更新します
2。CSRF保護を使用し、入力を検証します
3。認証とパスワードを保護します
4。SQL注入から保護します
5.適切な構成と環境を設定します
6. HTTPSとセキュアヘッダーを使用します
7。ポリシーとゲートを使用したアクセスを制御します
8。ファイルのアップロードを消毒および検証します
9。疑わしい活動を記録して監視します
10。ルートとAPIを保護します
ホームページ PHPフレームワーク Laravel Laravelアプリケーションを保護する方法

Laravelアプリケーションを保護する方法

Aug 17, 2025 am 12:03 AM

Composer Updateを実行し、Depenabotなどのツールを使用して、依存関係を更新します。 2。CSRF保護を使用し、Laravelの検証システムで入力を検証します。 3. BCRYPTで認証を保護し、強力なパスワードを実施し、レートの制限を実装します。 4.雄弁またはパラメーター化されたクエリを使用して、SQL注入を防ぎます。 5. app_debug = falseを使用して適切な構成を設定し、secrets in .envを保存します。 6。HTTPSを使用し、HSTSやCSPなどのセキュアヘッダーを使用します。 7。ハードコーディングされたロールチェックの代わりに、ポリシーとゲートを介したアクセスを制御します。 8。タイプ、サイズ、およびパブリックディレクトリの外部を保存することにより、ファイルアップロードをサニタイズします。 9. Laravelのログシステムを使用してログインに失敗したなどの疑わしいアクティビティを記録します。 10。Auth:SanctumとThrottleのようなミドルウェアでルートを保護してアクセスを制限し、すべての機密エンドポイントが保護されていることを確認します。

Laravelアプリケーションを保護する方法

Laravelアプリケーションのセキュリティには、入力検証から設定およびアクセス制御のセキュリティまでの複数の保護層が含まれます。 Laravelは箱から出して強力なツールを提供しますが、適切な実装が重要です。 Laravelアプリをより安全にする方法は次のとおりです。

Laravelアプリケーションを保護する方法

1.依存関係を更新します

攻撃者がアプリを活用する最も簡単な方法の1つは、時代遅れのパッケージの既知の脆弱性によることです。

  • Laravelとすべての依存関係を最新の状態に保つために、定期的にcomposer updateを実行します。
  • Laravel ShiftDependabotなどのツールを使用して、依存関係の更新を自動化します。
  • SecurityAdvisoriesまたはSNYKを介してセキュリティアドバイスを監視します。

Laravelまたはサードパーティのパッケージの古いバージョンには、不正なエクスプロイトがあります。常にサポートされているバージョンにとどまります。

Laravelアプリケーションを保護する方法

2。CSRF保護を使用し、入力を検証します

Laravelには、ミドルウェア( VerifyCsrfToken )を介した組み込みのCSRF保護が含まれています。これは、デフォルトでWebルートで有効になっています。

  • 絶対に必要な場合を除き、CSRFトークンを無効にしないでください(たとえば、パブリックAPI)。
  • Laravelの検証システムを使用して、常に受信リクエストを検証します。
 $ request-> validate([[
    「電子メール」=> '必須|メール'、
    「パスワード」=> '必須| min:8'、
]);
  • 複雑な検証ロジックのフォームリクエストを使用し、コントローラーを清潔に保つために使用します。
  • ブレードテンプレートを使用して出力を消毒します( {{ }}コンテンツを自動的に逃がします)が、 {!! !!}

3。認証とパスワードを保護します

Laravelの組み込み認証の足場は、正しく使用すると安全です。

Laravelアプリケーションを保護する方法
  • パスワードハッシュにbcrypt()を使用します(Laravelは、 Hashファサードを介してデフォルトでこれを行います)。
  • 検証ルールを使用して強力なパスワードを実施します。
  • ブルートフォース攻撃を防ぐためのログイン試行に制限を実装:
 // routeServiceProviderまたはミドルウェアで
ratelimiter :: for( 'login'、function(request $ request){
    return limit :: perminute(5) - > by($ request-> input( 'email'));
});
  • トークンの有効期限と取り消しでAPI認証にLaravel Sanctumまたはパスポートを使用することを検討してください。

4。SQL注入から保護します

LaravelのEloquent ORMおよびクエリビルダーは、正しく使用するとSQL注入から保護します。

  • 常に雄弁またはパラメーター化されたクエリを使用します。
ユーザー:: where( 'email'、$ email) - > first(); // 安全
  • 必要でない限り、生のクエリを避けてください。それらを使用する必要がある場合は、パラメーターバインディングを使用します
 db :: select( "select * from users where where email =?"、[$ email]);
  • ユーザー入力をSQL文字列に連結しないでください。

5.適切な構成と環境を設定します

誤解された環境は、機密データを公開します。

  • APP_ENV=productionAPP_DEBUG=false設定します。
    • APP_DEBUG=true cant config、keys、and stackトレースをリークできます。
  • Secretsを.envに保存し、バージョンコントロールにコミットしないでください。
  • config:cacheを使用して、構成の読み込みをスピードアップし、露出を減らします。

また:

  • secure SESSION_SECURE_COOKIE=trueを設定します。
  • SESSION_DOMAINを使用して、Cookieスコープを制限します。
  • SESSION_SAME_SITE=strictまたはlaxを設定して、最新のブラウザーでCSRFを防止します。

6. HTTPSとセキュアヘッダーを使用します

生産中のHTTPSを介して常にLaravelアプリを提供してください。

  • ミドルウェアまたはWebサーバー(nginx/apache)リダイレクトを使用してHTTPSを強制します。
  • ミドルウェアまたは.htaccess /server configを介してセキュリティヘッダーを追加します。

設定する一般的なヘッダー:

  • Strict-Transport-Security (HSTS)
  • X-Content-Type-Options: nosniff
  • X-Frame-Options: DENY
  • Content-Security-Policy (CSP) - 慎重に構成されています

Laravel Middlewareまたはspatie/laravel-cspなどのパッケージを使用して、CSPを管理できます。


7。ポリシーとゲートを使用したアクセスを制御します

Laravelの承認システムを使用して、アクセスを制限します。

  • モデルのポリシーを定義します。
 PHP Artisan Make:Policy Postpolicy  -  model = post
  • Bladeで@canを使用するか、コントローラーでauthorize()使用します。
 $ this-> authorize( 'update'、$ post);
  • if ($user->role === 'admin')ようなロジックを避けます - 代わりにゲートまたはポリシーを使用します。

8。ファイルのアップロードを消毒および検証します

ファイルアップロードは、一般的な攻撃ベクトルです。

  • ファイルの種類、サイズ、および拡張機能を検証します。
 $ request-> validate([[
    'avatar' => '必須|画像|最大:2048'、
]);
  • ファイルをstorage/app/publicに保存し、 storage:link
  • アップロードされたファイルを実行しないでください。アップロードをpublic/直接配置しないでください。
  • 潜在的なマルウェアをストリップするために、画像(介入画像で再節約)を変換することを検討してください。

9。疑わしい活動を記録して監視します

ロギングを有効にし、定期的にログを確認します。

  • laravelログstorage/logs/laravel.logへのログ。
  • エラートラッキングのために、Laravel Telescope(DEV用)やSentryなどのツールを使用します。
  • ログに失敗したログインの試み、機密領域へのアクセス、および管理アクション。

例:

 log ::警告( '失敗したログイン試行'、['email' => $ email]);

10。ルートとAPIを保護します

  • ルートにミドルウェアを適用します。
    • auth:sanctum
    • 電子メールの検証が必要な場合はverified
    • リクエストを制限するためのthrottle
ルート::ミドルウェア(['auth:sanctum'、 'srottle:60,1']) - > group(function(){
    //保護されたルート
});
  • ミドルウェアなしでweb.phpで敏感なルートを公開しないでください。
  • トークンベースの認証を備えたステートレスエンドポイントには、APIルート( api.php )を使用します。

基本的に、Laravelの保護は、組み込みのツールを適切に使用し、すべてを検証し、ソフトウェアの更新を維持し、攻撃面を最小化することになります。ほとんどの脆弱性は、誤った構成またはララヴェルの保護手段のバイパスから生じます。フレームワーク自体からではありません。

以上がLaravelアプリケーションを保護する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

ホットトピック

Laravelの構成キャッシュとは何ですか? Laravelの構成キャッシュとは何ですか? Jul 27, 2025 am 03:54 AM

Laravelの構成キャッシュは、すべての構成ファイルを単一のキャッシュファイルにマージすることにより、パフォーマンスを向上させます。生産環境で構成キャッシュを有効にすると、各リクエストでI/O操作を削減し、ファイルの解析を行うと、構成の読み込みが高速化されます。 1.アプリケーションが展開され、構成が安定しており、頻繁な変更は必要ありません。 2。構成を有効にして変更した後、phpartisanconfigを再実行する必要があります:キャッシュを有効にします。 3.構成ファイルのランタイム条件に依存する動的ロジックまたはクロージャーを使用しないでください。 4.トラブルシューティングの問題の場合、まずキャッシュをクリアし、.ENV変数を確認して、再キャッシュする必要があります。

Laravelテストでオブジェクトをock笑する方法は? Laravelテストでオブジェクトをock笑する方法は? Jul 27, 2025 am 03:13 AM

usemockeryforcustomdependenciesbysettingtintingations withshouldreceive()。2。uselaravel’sfake()methodforfacadeslikemail、queue、andhttptopreventreal interactions.3.replacecontainer-boundserviceswith

Laravel Eloquent Scopesを説明してください。 Laravel Eloquent Scopesを説明してください。 Jul 26, 2025 am 07:22 AM

LaravelのEloquentsCopesは、ローカルスコープとグローバルスコープに分割された一般的なクエリロジックをカプセル化するツールです。 1.ローカルスコープは、範囲から始まるメソッドで定義されており、post :: published()など、明示的に呼び出される必要があります。 2.グローバルスコープは、ソフト削除またはマルチテナントシステムによく使用されるすべてのクエリに自動的に適用され、スコープインターフェイスをモデルに実装および登録する必要があります。 3.スコープには、年または月ごとに記事をフィルタリングするなどのパラメーターを装備でき、呼び出し時に対応するパラメーターが渡されます。 4.コードの明確さと再利用性を改善するために使用する場合、命名仕様、チェーンコール、一時的な無効化、および組み合わせの拡張に注意してください。

Laravelで紹介システムを実装する方法は? Laravelで紹介システムを実装する方法は? Aug 02, 2025 am 06:55 AM

紹介テーブルを作成して、紹介、紹介、推奨コード、使用時間を含む推奨関係を記録します。 2.推奨データを管理するために、ユーザーモデルのBelongStomanyとHasmanyの関係を定義します。 3.登録時に一意の推奨コードを生成します(モデルイベントを通じて実装できます)。 4.登録中にパラメーターをクエリすることにより、推奨コードをキャプチャし、検証後に推奨関係を確立し、自己称賛を防ぎます。 5.推奨されるユーザーが指定された動作(サブスクリプション順序)を完了した場合、報酬メカニズムをトリガーします。 6.共有可能な推奨リンクを生成し、Laravel Signature URLを使用してセキュリティを強化します。 7.推奨事項の総数や変換された番号など、ダッシュボードに推奨統計を表示します。データベースの制約、セッション、またはCookieが持続することを確認する必要があります。

Laravelでヘルパーファイルを作成する方法は? Laravelでヘルパーファイルを作成する方法は? Jul 26, 2025 am 08:58 AM

createahelpers.phpfileinapp/helperswithcustomfunctionslikeformatprice、isactiveroute、andisadmin.2.addthefiletothe "files" sectionofcomposer.jsonunderautoload.3.3.runcomposerdump-autoloadtomadtomakeTomeTheEfunctionSglunctionSglovalliableableableableableableableableableableableableabuntion

Laravelプロジェクトを実行する方法は? Laravelプロジェクトを実行する方法は? Jul 28, 2025 am 04:28 AM

CheckPhp> = 8.1、Composer、およびWebserver; 2.CloneOrCreateProjectAndRunComposErinStall; 3.Copy.Env.Exampleto.ENVANDRUNPHPARTISANKEY :generate; 4.setDatabaseCredentialSin.EnvandrunphpartisanMigrate-- Seed; 5.StartServerWithPhpartisEnserve; 6.optionallyrunnpmins

Laravelでデータベースをシードする方法は? Laravelでデータベースをシードする方法は? Jul 28, 2025 am 04:23 AM

シーダーファイルの作成:phpartisanmake:seederuserseederを使用してシーダークラスを生成し、実行方法のモデルファクトリーまたはデータベースクエリを介してデータを挿入します。 2。Databaseseederで他のシーダーを呼び出す:sulderseeder、Postseederなどを登録$ this-> call()を介して依存関係が正しいことを確認します。 3。シーダーの実行:PHPARTISANDBを実行する:種子をすべて登録したすべてのシーダーを実行するか、PHPARTISANMIGRATE:FRESS-シードを使用してデータをリセットして補充します。 4

Laravelアプリに機能フラグを実装する方法は? Laravelアプリに機能フラグを実装する方法は? Jul 30, 2025 am 01:45 AM

chooseafeatureflagstrategysuchasconfigベース、データベース駆動型、orhird-partytoolslikeflagsmith.2.setupadatabase-drivensystemby-drivensystemmigrationforafeature_flagstablewithname、evanabled、andrulesfields、thenrunthigration.3

See all articles