-1

この問題を解決するために髪をひったくりますが、できません。

URL の id を解析して、その id に従って次のページにデータを取得しています。したがって、解析するのではなく、id=123のように暗号化しprocess.php?token=TG4n6iv_aoO7sU3AngFY4WLSppLvueEoh-MnYE6k7NA、 で収集して process.php ページで復号化し$_GETてから、SQL クエリで使用しました。これは適切な URL ではありません。URL のようなものがprocess.php?token=9878799889必要で、process.php でこの 9878799889 を解読する必要があります。これにより、元のユーザー ID が得られます。

したがって、ここでは、醜い文字列を生成する md5 または base64_encode を使用できません。ここで何をするのが最善でしょうか?id は一意であるため、生成される長い数字も一意である必要があり、簡単に推測できません。現在、ソルトを使用して暗号化対数を使用しています。実際に解析したいwww.sitename.com/process/token/9878799889..これは.htaccessで実現できるので気にしないでください..

どんな助けでも大歓迎です..

4

1 に答える 1

0

できることは、データベースに関連付けテーブルを追加することです。これには、主キーとしての UUID (ランダムに生成された番号) と真の ID 参照
(および「有効期限」の日付など、そこに保存したいその他の情報が含まれます)または他のもの...)

UUIDを解析するときに、そのテーブルにエントリを生成する必要があります。
たとえばINSERT INTO uuid_table (uuid, real_id) VALUES (9878799889, 123);
、URLを処理するときに 、読み取りIDを返すprocess.php?token=9878799889
だけで済みます。SELECT real_id FROM uuid_table WHERE uuid=9878799889;
123

またDELETE FROM uuid_table WHERE uuid=9878799889、完了したときに行う必要があります。

md5 または base_64 でも機能することに注意してください。ただし、実際には URL が見苦しくなります。

于 2013-07-05T13:29:00.667 に答える