私は基本的なアプリケーションを構築しています。login.phpからindex.phpにユーザ情報を渡す方法を理解しようとしています。これまでのところ、私はログイン・ページを持っており、ユーザー・クラスを介してデータベースを介してユーザーを送信および認証します。その後、ユーザープロパティはデータベースから返される値に設定されます。そこからidはセッションに格納されます。ページからページへのユーザー情報へのアクセス方法を教えてください。私はちょうどセッションIDを持つデータベースを照会するための構築メソッドを構築する必要がありますか?それは安全か有効なアプローチですか?スタックオーバーフローの例があります。すべてのページの上部にユーザー名が表示される方法。ログインページでログイン後にユーザー情報にアクセスするにはどうすればよいですか?
答えて
が鳴ります。つまり、どのメソッドが安全であるか、最適化されているかどうかを尋ねるだけです。
セッションやクッキーにできるだけ少ない情報を保存して、簡単な釣りのハッキングまでユーザーを開放しないようにするのが一般的です。理想的には、セッションIDを使って相互参照できるデータベースにセッションテーブルがあることを意味します。
はい、すべてのページの読み込みでクエリを実行しますが、これは標準のサイトではあまりオーバーヘッドではありません。あなたの意見をきちんと消毒する限り、それは安全ではありません。ユーザーがセッション情報を操作した場合、そのようにすることはできません。
また、ユーザーIDとユーザー名だけを使用している場合は、それらをセッションに安全に保存し、すべてのページの読み込み時にクエリを避けることができます。セッションやクッキーのデータを詰め込んで、あまり使われない情報で埋め尽くされた非常に長い配列でナッツをしないでください。
+1;セッションデータの安全性に関する良い点 –
@カイさんは私の質問をTに答えました、ありがとうございます。 – Scott
、他のページのセッションでデータベースから店舗の利用者情報、あなたは直接
<?php
session_start();
$_SESSION['user'] = $username;
や他のサイト
<?php
session_start();
$_SESSION['user'];
あなたがあなたのプロフィールページに行くとき、stackoverflowの例に戻ると、そこにたくさんのデータがあります:あなたが答えた質問、あなたが聞いた質問など..あなたは明らかにそのすべてをセッションに保存するつもりはありませんだから、どのように$ _SESSSION ['USER']とIDを使ってデータベースからすべてのデータを取り出すのですか? – Scott
あなたのSQL構造にあなたのプライマリIDがあるとします。$ _SESSION ['id']にIDを格納し、後で必要ならば各サイトで使用されるいくつかの基本情報(ユーザ名や名前など)を保存しますいくつかの困難で特定のクエリを取得し、ちょうど$ _SESSION ['id']からIDを取得し、あなたのSQLクエリでそれを使用してください –
にそれらを呼び出すことができますI基本的なアプリケーションを構築していますが、login.phpからindex.phpにユーザ情報を渡す方法を理解しようとしています
一つの方法は、PHPのセッションデータとして共有データを格納することです:http://www.tizag.com/phpT/phpsessions.php
<?php
session_start(); // start the session
$_SESSION['views'] = 1; // store session data
echo "Pageviews = ". $_SESSION['views']; //retrieve data
ストアあなたがすべてのページのために必要なユーザー・データ。 DBに拡張データを残すことができるので、大量のデータを前もって照会する必要はありません(SOのプロファイルページに表示される徹底的な統計情報など)。
その後、すべてのページでユーザーデータを再クエリする必要はありません。セッションデータから取得するだけです。
セッションIDを使用してデータベースにクエリを実行するための構築メソッドを作成してください。それは安全か有効なアプローチですか?
すべてに同じDBアカウントを使用している場合、本質的にユーザーテーブルのクエリについては安全性が低くなりません。すでに行っている他のクエリよりも危険にさらされることはありません。
DBにアクセスする際の安全性が心配なら、具体的な問題について学ぶことをお勧めします。SQL injection attacksを防ぐ。
を参照してください:あなたがダウン取り扱いセッションの一般的な考えを持っているようHow can I prevent SQL injection in PHP?
- 1. Gスイートのユーザーのログイン情報をプログラムでリセットするにはどうすればよいですか?
- 2. Skype Web SDKにOffice365の資格情報でログインするにはどうすればよいですか?
- 3. Flexでユーザーのブラウザに関する情報を取得するにはどうすればよいですか?
- 4. 新しいコールバック<ResponseBody>でMultipartBody情報にアクセスするにはどうすればよいですか?
- 5. AndroidアプリでSchoologyのREST APIから情報にアクセスするにはどうすればよいですか?
- 6. Realm Mobile Platformでユーザー資格情報をリンクするにはどうすればよいですか?例えば
- 7. Androidで道路交通情報にアクセスするにはどうすればよいですか?
- 8. Beautifulsoupでこの情報にアクセスするにはどうすればよいですか?
- 9. クリスタルレポートとmsアクセスでログオン情報を動的に変更するにはどうすればよいですか?
- 10. ログイン後に異なるユーザーを別のページに誘導するにはどうすればよいですか?
- 11. チェックアウト時にユーザー課金情報の更新を防止するにはどうすればよいですか?
- 12. Airbrake通知にユーザー情報を追加するにはどうすればよいですか?
- 13. ユーザーのブラウザ情報を取得してフォームフィールドに送信するにはどうすればよいですか?
- 14. ログイン後にtouchIDLockoutをリセットするにはどうすればよいですか?
- 15. Googleカレンダーの情報にアクセスするにはどうすればよいですか?
- 16. テーブルビューの指の位置/動き情報にアクセスするにはどうすればよいですか?
- 17. ストライプ情報を取得するにはどうすればよいですか?
- 18. スタックトレース情報を取得するにはどうすればよいですか?
- 19. メタタグの情報をスクラップするにはどうすればよいですか?
- 20. WebClientからWCF RESTサービスにユーザー資格情報を渡すにはどうすればよいですか?
- 21. ログイン資格情報に依存する特定の「ログイン後のオプション」を設定するにはどうすればよいですか?
- 22. 自動アンドロイドテストにログイン認証情報を提供するにはどうすればいいですか?
- 23. chrome.tabs.query()から情報を返すにはどうすればよいですか?
- 24. ユーザーに情報を入力させるにはどうすればよいですか?
- 25. デリゲートタイプに情報を保持させないようにするにはどうすればよいですか?
- 26. 情報をテキストボックスにプレロードするにはどうすればいいですか?
- 27. Photoshopでレイヤースタイル情報にどのようにアクセスしますか?
- 28. ソーシャルメディアでログインした後にユーザーの詳細を取得するにはどうすればよいですか?
- 29. Windowsサービスのユーザー資格情報をコマンドラインから変更するにはどうすればよいですか?
- 30. 最新バージョンのHyperledger Fabricからユーザー情報を取得するにはどうすればよいですか?
なぜユーザー情報をセッションに保存しないのですか? –