ホームページ >バックエンド開発 >PHPチュートリアル >PHPでURLアドレスバーパラメータを非表示にする方法

PHPでURLアドレスバーパラメータを非表示にする方法

WBOY
WBOYオリジナル
2016-06-23 13:26:304129ブラウズ

PHP で作成したページで、ユーザーをクリックしてそのユーザーの情報を表示すると、URL バーが表示されます: http://www.abc.com/index.php?user_id=39 他のユーザーを表示できます。番号を変更することで。これはあまりにも危険ではありませんか?

この問題を回避して、「http://www.abc.com/」または「http://www.abc.com/index.php」のような情報のみが URL に表示されるようにするには、どのような方法を使用できますか?
やり方を教えてください!


ディスカッション(解決策)に返信

番号を変更すると、他のユーザーを表示できます。これはあまりにも危険ではありませんか?
このセキュリティ問題は、URL パラメーターを非表示にすることで解決する必要はありません。$_SESSION を使用して、現在のユーザーがパラメーター user_id の値であるかどうかを確認します。そうである場合は表示できます。そうでない場合は、表示できません。また、他のユーザーの情報を表示できるようにする必要があります。ビューで一部の個人情報を除外できます

Cookie またはセッションを介して渡すことができます

詳細なコードを書いていただけますか?番号 他のユーザーを表示できます。これはあまりにも危険ではありませんか?

このセキュリティ問題は、URL パラメーターを非表示にすることで解決する必要はありません。$_SESSION を使用して、現在のユーザーがパラメーター user_id の値であるかどうかを確認します。そうである場合は表示できます。そうでない場合は、表示できません。そして、他のユーザーの情報の表示は許可されるべきです



書き方のコードを添付していただけますか? これは権限制御の問題です。
たとえば、http://my.csdn.net/xuzuning と http://my.csdn.net/ は異なって表示されます

最も簡単な方法は、比較にセッションを使用することです コードについては、存在する場合は自分で記述してくださいバグですか、それとも実行できません 質問


//首先,你得在用户登录后把uid存到session里,比如在login.php中$_SESSION['uid'] = XXX //XXX为用户登录时给他的sessionID(和user表的uid值相同)//比如在userinfo.php中if($_SESSION['uid'] == intval($_GET['user_id'])){	//显示当前登录用户信息}else{	//可以显示别的用户的信息(用$_SESSION['uid']查询user表的uid,并根据需要展示信息)	//也可以直接给出error信息,告诉他不能查看该用户的信息}



//首先,你得在用户登录后把uid存到session里,比如在login.php中$_SESSION['uid'] = XXX //XXX为用户登录时给他的sessionID(和user表的uid值相同)//比如在userinfo.php中if($_SESSION['uid'] == intval($_GET['user_id'])){	//显示当前登录用户信息}else{	//可以显示别的用户的信息(用$_SESSION['uid']查询user表的uid,并根据需要展示信息)	//也可以直接给出error信息,告诉他不能查看该用户的信息}

申し訳ありませんが、$_SESSION['uid'] = XXX はログイン時に HTML ページに配置されるのか、PHP ページに配置されるのかがまだわかりません。 ? if($_SESSION['uid '] == intval($_GET['user_id'])){ 具体的にはログイン後のhtmlページか、ログイン後の判定用のphpページのどちらに置くべきでしょうか? $_SESSION[' uid'] = XXX は php スクリプト内に配置されます。 スクリプトでは、ログイン情報のチェックが完了した後、 $_SESSION['uid'] = XXX を元にユーザー テーブルから取得する必要があります。ユーザーのログインフォームフィールド。

if($_SESSION['uid'] == intval($_GET['user_id'])) はログイン後に user_id と $_SESSION['uid'] が渡されたかどうかを判定する php スクリプトに置く必要があります。 GET 一貫性がある場合は、ユーザー情報テーブルからユーザー情報を取り出し、それを $userinfo に割り当てます。その後、HTML ページを導入し、username:45a2772a6b6107b401db3c9b82c049c27d321aa818473bd8df2abb20c90e30b854bdf357c58b8a65c66d7c19c8e4d114
渡されたパラメータが $_SESSION['uid'] と異なる場合は、表示されるユーザー情報が現在ログインしているユーザーではないことを意味します。今回、ユーザーの情報を表示したい場合は、GET の user_id に基づいてユーザー情報テーブルの情報を確認し、一部のユーザー情報を選択的に表示し、表示したくない場合は一部の個人情報を表示しないことができます。現在ログインしているユーザー以外のユーザーの情報は、直接 header(location :XXXXX) でエラーページにジャンプし、そのユーザーの情報が閲覧できないことを通知します
;
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。