▽1
●
y-kawaz ●100ポイント ![]() |
> 例えば、ログインパスがわからなくても
> 編集ページで適当なセッション作って 数字入れて言ったら
> このユーザでなくて編集できるようになっちゃうんじゃないかと思いまして
「編集ページで適当なセッション作って」これが出来ないから問題無いです。$_SESSION 自体が既にランダムIDに紐付いたものとして使えるようになっているので大丈夫なのです。
ブラウザのクッキーを見るとPHPSESSIONIDという名前でランダムな値が入っているクッキーがありますよね?予測できないようにランダムにするべきというのは、このPHPSESSIONIDという名前のクッキーの値です。これはPHPが勝手にランダムで作ってくれます。
認証成功した際にセットされる $_SESSION['user_id'] の値はサーバ側プログラムがセットするもので、ユーザの入力がそのまま入れるわけではないですよね。
質問者さんは ?user_id=1 などのクエリを編集画面に投げたら、PHP内部で$_SESSION['user_id']が1になってしまうんじゃないか?と勘違いされて心配しているのだと思いますが、ユーザの入力が入るのは $_GET や $_POST や $_REQUEST であって、$_SESSION ではありません。$_SESSIONにユーザが直接値を代入することは出来ません。