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

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

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

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

解決済

1回答

5077閲覧

PHPのセッション変数に危険性はないですか?

kaerukun

総合スコア23

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

2クリップ

投稿2014/11/17 23:58

PHPのセッション変数はどれぐらい安全と考えればよいでしょうか。

現在開発しているサイトでは、ログイン時にログインIDとパスワードを「ユーザー」テーブルで照合し、
さらに、’ロール’テーブルでは、ユーザーのアクセスレベルを表示します。

安全なログイン・スクリプトを使用していると仮定し、ユーザーの権限レベルをチェックするために’ロール’テーブルに対してクエリーをする時にセキュリティーホールはあるのでしょうか?

複数のユーザーが権限を持つページを見つけたとき、クエリーを出すことで、そのユーザーの権限レベルがわかるので知っておきたいと思い、こちらで質問させていただきました。
ご回答よろしくお願いします。

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

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

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

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

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

guest

回答1

0

ベストアンサー

PHPのセッション変数は、Cookieよりはるかに安全です。

しかし悪意あるユーザが、何らかの方法でセッション変数を読む事態は考えられます。
その場合、悪意あるユーザがすべてのセッション変数にアクセスできるようになってしまいます。

これを予防する策としては、
・毎回IPアドレスをチェックする
・ノンスを使用する
があります。

IPアドレスのチェックはしないよりずっとよいですが、これだけでは危険です。
ノンスはその生成されたページごとにランダムな文字列(トークン)を埋め込むもので、この文字列によってたとえば、その直前のページからPOSTされたかどうかが判別できます。

ただし、いずれの手段にせよユーザビリティは大きく損なわれます。
IPアドレスのチェックは、ユーザの接続環境が安定していなかったり、ファイアウォール越しにアクセスしている場合は、IPアドレスが変わるたびに何度も認証しなければなりません。
ノンスは、ユーザがブラウザの「戻る」ボタンを使っただけでエラーになってしまう場合があります。

Cookieは比較的簡単なXSS(クロスサイトスクリプティング)でセッションを盗聴できます。
ユーザのセッションIDをCookieに登録すると、それらも危険に晒されることになります。
考えられる攻撃は想定したうえで認証システムを作る必要があります。

なお、CookieAjaxを同時に使わないように注意してください。
CookieとAjaxを同時に使用すると、Cookieが偽装されても、Ajax側で毎回セキュリティチェックを行うことができないためです
Cookieが認証システムに使用されていると、盗聴したCookieやAjaxのセキュリティホール両方での攻撃が可能になる場合があります。

投稿2014/11/19 02:30

kanko002

総合スコア27

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問