質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Laravel

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

Webサイト

一つのドメイン上に存在するWebページの集合体をWebサイトと呼びます。

Eloquent

Eloquentとは、PHPフレームワークのLaravelに最初から含まれているORM(Object-relational mapping:オブジェクト関係マッピング)です。

Q&A

解決済

2回答

832閲覧

laravelのeloquantを使った時のセキュリティについて

tofu_fine

総合スコア9

Laravel

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

Webサイト

一つのドメイン上に存在するWebページの集合体をWebサイトと呼びます。

Eloquent

Eloquentとは、PHPフレームワークのLaravelに最初から含まれているORM(Object-relational mapping:オブジェクト関係マッピング)です。

0グッド

0クリップ

投稿2020/11/06 10:50

編集2020/11/07 02:01

laravelの学習をし始めた初心者です。2つ質問したいです。eloquantを調べているときに思ったのですが、例えば、Auth機能を備えたusersテーブルと,postsテーブルがあるとして、

1つ目は、ユーザー情報を取得したい場合、
UserControllerに
$items = User::where('user_id',$request->user_id)->get(); (user_idというカラムを自作しました)
return view('userpage', ['items' => $items]);
と書いたら、passwordやemailなどの情報も取得しますが、ビューフォルダ(userpage)で表示させなければ問題ないのでしょうか。

2つ目も似たような質問ですが、
とある投稿(post)のウェブページで投稿したユーザー情報を取得したい場合、

モデルのPost.phpに
public function user()
{
return $this->belongsTo('App\Models\User');
}
と書きますが、この場合でも、取得するカラムの制限をしなくてもビューフォルダで表示させなければ問題はないのでしょうか。

<追記>
回答、修正依頼ありがとうございます。
この質問をしたときは、多数のユーザーが投稿できる簡易的なブログといったアプリケーションを想定していました。この場合では、セキュリティ上問題ないと理解しています。
追加の質問として、セキュリティ要件が厳しい中でDBから情報を取得する際、最も安全な形はどういったものなのか興味を持ちました。ご回答の中で指摘いただいたような、フロントのSSRを利用したり、APIを提供する場合を想定しています。node.js(vue.jsなどを使うときに使うもの?)やAPIについて分かっていないのでぼんやりとした質問になってしまいますが、ご回答いただけれればありがたいです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

m.ts10806

2020/11/07 00:21

どこまでのセキュリティ要件を定義していますか? それ次第です。何でもかんでもということにはなりません。
guest

回答2

0

ベストアンサー

意図せずjsonで出力した時でも絶対に公開できない項目は$hiddenで隠す。

protected $hidden = [ 'password', 'remember_token', ];

サーバーサイド内で済んでる内は基本的には気にしなくていい。
フレームワークが程よく対策してくれている。
が、これに慣れすぎた人が事故を起こしてるのが最近の出来事。
フロントとフロントでのSSRが関わると見せてはいけないデータが見える事故が起きる。
今の内からselect()で必要なデータだけ取得する癖を付けたほうがいいかもしれない。

投稿2020/11/06 12:40

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

User::where('user_id',$request->user_id)->get()

Post::where~の間違いでは?

passwordやemailなどの情報も取得しますが、ビューフォルダ(userpage)で表示させなければ問題ないのでしょうか。

APIを提供するわけではない限り問題ないです。

取得するカラムの制限をしなくてもビューフォルダで表示させなければ問題はないのでしょうか。

APIを提供するわけではない限り問題ないです。

投稿2020/11/06 11:22

kyoya0819

総合スコア10429

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問