ホームページ >バックエンド開発 >PHPチュートリアル >PHPでURLアドレスバーパラメータを非表示にする方法
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 の値であるかどうかを確認します。そうである場合は表示できます。そうでない場合は、表示できません。そして、他のユーザーの情報の表示は許可されるべきです
//首先,你得在用户登录后把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