2017-12-10 9 views
1

ベストプラクティスは何ですか?URL上でユーザーIDを表示しますか?例:www.domain.com/user/1

私は、ユーザーのプロフィールページを持っているウェブサイトを、持っていて、domain.com/user/1でそれを得ることができます。すべての番号は、私のデータベースからUser_IDを明らかにする。私はこれが悪い考えですか?私はSQLインジェクションには入っていませんが、おそらく私に対して情報を使うことができます。私はLaravelを使用しています。

あなたはどう思いますか?ユーザープロファイルに乱数を使用する必要がありますか、それとも全く問題はありませんか?

+0

セッションスコープに入れ、すべてのページリクエストでurl値とセッション値を比較します。 –

+0

それは敏感なものですか?誰でもそれを推測することができます。自動的にインクリメントされ、laravelを使ってencrypt()を試して隠しておき、実際にあなたが公開しているIDの実際の値を隠すためにハッシュIDを使用できるということを本当に心配している場合は、URL – RohitS

+0

に追加するか、ユーザー名またはURL内で一意のもの – lagbox

答えて

2

注:

いやをlaravelする文脈での書き込み、それはあなたがそれを使用したい目的に完全に依存します。

http://www.demosite.com/seller/1234/products/1234

vendor idおよび関連product idを開示するのと同じように見えるURLをリストアップし、簡単な製品、例えば、言うことができます。たとえ誰かが何かをしようとしたとしても、ベンダーや製品が完全に正常に終了しない場合、誰かが何かをしようとしても、

http://www.demosite.com/seller/1235/products/1232は失敗します。

また、あなたはおそらくlaravelを使用しているとして選択されたルートは、そう認証されたユーザーにのみ表示されます、第1レベルのセキュリティが実現され、あなたはまだハッシュ心配 使用している場合にのみのために、内部ユーザーについての心配を持っていますまたは暗号化(再び、それはデータの機密性に完全に依存します。)

あなたが任意のクエリが戻ってコメントを持っている場合は、.. Laravel HashingまたはEncryption

のためにここに見ることができます。..

2

if depends!

だけIDを使ってアクセスすることができ、まったく敏感なものがあれば、それは問題です。

しかし、何も敏感でない場合 - 作成される前にアカウントのIDを先取りしても、 - 問題はありません。

はここにStackOverflowの上のユーザーIDが含まれている例https://stackoverflow.com/users/7009480/philipp-mochineのために考えてみましょう。


多段登録はこれで問題が次のようになります。攻撃者は最後のページに先にジャンプし、実在の人物が、まだ彼らのプロフィールに記入されている間認証の詳細を設定します(修正:アカウントを作成し、パスワードを入力すると、後ですべてを記入できます)。

関連する問題