0

セッション処理には、デフォルトの php ファイルベースの処理ではなく、mysql を使用しています。

データベースからセッション情報を読み取る前に、クライアントが提供したセッションIDが有効であることを確認したかったので、関数を作成しましたが、今のところ機能しているように見えますが、それでもマスターに確認したかったのです

private function validSID($id) {
        return !empty($id) && preg_match('/^[a-zA-Z0-9,-]{26,40}$/', $id);
    }

みんなありがとう

編集: 以下に示すように、皆さんが提案したように変更を加えました

private function validSID($id) {
        //make sure the length is 22
    //things are based on   session.hash_bits_per_character = 6
    return preg_match('/^[a-zA-Z0-9,-]{22}$/', $id);
    }
4

1 に答える 1

1

有効な数字をチェックしていますが、PHPのセッションIDがさまざまな.iniパラメーターに基づく固定長であるという事実を完全に無視しています。phpの現在の設定と一致しないID文字列が拒否されるようにチェックを調整する必要があります。たとえば、hash_bits_per_characterなどがあります。

于 2012-11-26T16:36:45.270 に答える