ホームページ >バックエンド開発 >PHPチュートリアル >laravelでファイルへの許可されたアクセスを実装するにはどうすればよいですか?

laravelでファイルへの許可されたアクセスを実装するにはどうすればよいですか?

WBOY
WBOYオリジナル
2016-07-06 13:51:141282ブラウズ

laravelのpublicディレクトリの下にresディレクトリがあり、その中の写真にアクセスする際にユーザーに権限があるかどうかを確認したいのですが、ユーザーはアドレスを入力するとファイルに直接アクセスし、認証を経ません。認証ミドルウェア
例:図に示すように、public の下の res ディレクトリに画像を置きます

laravelでファイルへの許可されたアクセスを実装するにはどうすればよいですか?

ルーティング:

リーリー

訪問中に写真を直接見ることができます。ログインしたユーザーのみが写真を閲覧できるようにするにはどうすればよいですか?


laravelでファイルへの許可されたアクセスを実装するにはどうすればよいですか?

Baidu ディスク内の画像へのリンクを見てみました。

これに似ています
リーリー

画像ごとにハッシュ値を生成し、ルーティングとルーティング内のパラメータを元に検証し、渡した後にハッシュを元にファイルを返すようです。

具体的な実装原則を教えていただけますか?

返信内容:

laravelのpublicディレクトリの下にresディレクトリがあり、その中の写真にアクセスする際にユーザーに権限があるかどうかを確認したいのですが、ユーザーはアドレスを入力するとファイルに直接アクセスし、認証を経ません。認証ミドルウェア

例:図に示すように、public の下の res ディレクトリに画像を置きます


laravelでファイルへの許可されたアクセスを実装するにはどうすればよいですか?ルーティング:

リーリー

訪問中に写真を直接見ることができます。ログインしたユーザーのみが写真を閲覧できるようにするにはどうすればよいですか?


laravelでファイルへの許可されたアクセスを実装するにはどうすればよいですか?Baidu ディスク内の画像へのリンクを見てみました。

これに似ています

リーリー
画像ごとにハッシュ値を生成し、ルーティングとルーティング内のパラメータを元に検証し、渡した後にハッシュを元にファイルを返すようです。

具体的な実装原則を教えていただけますか?


Laravel 自体は、/public/index.php の入り口のみを処理します。あなたが言及した画像ファイルは、index.php には存在しないため、Laravel は気にしません。

/Img/locaiton?user=xxx&name=iiii などのコントローラーに画像アクセスを設定しない限り、次のように ImgController.php にアクセスすると、画像を読み取って自分で表示するだけで済み、自分で認証を追加することもできます (注)写真を /public の下に置かず、public と同じディレクトリに置きます)

index.phpを除いて、public/内の他のファイルは純粋に静的ファイルであり、Laravelルーティングにはまったく含まれません

Baidu Netdisk のハッシュ パラメーターについては、読み取りファイルのアドレスと有効期限を任意に追加できます。

WebServer を使用して書き換えを行い、コントローラー php を通過し、このコントローラーで Auth:check を実行します。

アクセス制御が必要なファイルはパブリックディレクトリではなくストレージディレクトリに配置し、外部から直接アクセスできないようにする必要があります。

訪問者の権限を検証するコントローラーを実装できます。一貫性がある場合は、HTTP トランスポート ストリームを介して画像バイナリ データを必要な形式で出力できます。

Laravel (正確には Symfony) はすでにこのタイプのレスポンスを提供しています。ドキュメントを読んで対応する API を見つけることができます。

あなたが知っている写真の許可確認とホットリンク防止方法のほとんどはこのようなものです。

上。

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