ホームページ > バックエンド開発 > PHPチュートリアル > UID およびその他の ID を暗号化するための PHP での最速の暗号化および復号化方法は何ですか?

UID およびその他の ID を暗号化するための PHP での最速の暗号化および復号化方法は何ですか?

WBOY
リリース: 2023-03-02 12:42:01
オリジナル
2095 人が閲覧しました

これまでは、ID は常にフロントエンドの get パラメーターとして直接使用されていました。たとえば、ユーザーがこのパターンを発見した場合、16 を次のように変更するだけで各ユーザーのデータを表示できます。 17、18、19など、どうやって解決したのか聞きたいです。 a.com?uid=16


この要件は、ユーザーが他のユーザーの情報を閲覧できないことを意味するものではなく、誰でも閲覧できることを意味します。では、なぜ今でもそのようなニーズがあるのでしょうか?これは WeChat の WeChat ID と同じで、WeChat ID があればその人を検索できますが、資格情報の詰め込みや運などによってその人を見つけることは困難です。 Youku、Tudou、Bilibili、すべての動画 Web サイトでは、アドレス バーに動画 ID が直接表示されず、すべて暗号化されています。 (動画サイトがデータベース内で連続IDを使用していない場合、私はそれを言いませんでした...実際、私は上記のWebサイトのデータベースを見たことがありません)


要件は、暗号化と復号化が高速であり、解読が困難であることです。 (前者が優先)

返信内容:

これまでは、ID は常にフロントエンドの get パラメーターとして直接使用されていました。たとえば、ユーザーがこのパターンを発見した場合、16 を次のように変更するだけで各ユーザーのデータを表示できます。 17、18、19など、どうやって解決したのか聞きたいです。

a.com?uid=16

この要件は、ユーザーが他のユーザーの情報を閲覧できないことを意味するものではなく、誰でも閲覧できることを意味します。では、なぜ今でもそのようなニーズがあるのでしょうか?これは WeChat の WeChat ID と同じで、WeChat ID があればその人を検索できますが、資格情報の詰め込みや運などによってその人を見つけることは困難です。 Youku、Tudou、Bilibili、すべての動画 Web サイトでは、アドレス バーに動画 ID が直接表示されず、すべて暗号化されています。 (動画サイトがデータベース内で連続IDを使用していない場合は、私は言いませんでした...実際、私は上記のWebサイトのデータベースを見たことがありません)

要件は、暗号化と復号化が高速であり、解読が困難であることです。 (前者が優先)

これと同じように、あなたの目的が

他のユーザーのデータを閲覧できないようにすること

である場合、あなたの考えは少し偏っています。 あなたがすべきことは、uid を暗号化するのではなく、バックエンドで認証することです。たとえば、現在ログインしているユーザーが

である場合、それは本当ですか?

uid=16,那么当他请求 a.com?uid=17(或者其他非 16 的页面),后端应该能判断出他没有权限并给出相应的返回(如输出空白页面,或者是直接抛 403 之类)。
至于说怎么去实现鉴权,简单的就是把已登录用户的 uid 记录在 $_SESSION['uid'] 里,每次请求的时候判断 $_GET['uid'] == $_SESSION['uid']


2016-10-26 21:51 補足:

<<<質問所有者は質問を更新し、誰でもユーザー情報を見ることができると述べましたが、ユーザーのを使用してデータを取得したいだけです。
<<uid 隐藏起来。遇到这种情况,我的做法是在用户表增加一个字段 openid 并将其加入索引,在用户注册时可以通过 uidUNIX 时间戳若干长度的随机字符串 等组合后通过 md5() 一类的函数来生成一个唯一的 openid,对外公开资料的情况下就通过 openid

どうしても暗号化を使用したい場合は、インターネットで検索することもできます。すでに完成したソリューションがたくさんあります。
をキーワードとして検索すると、最初のページにあるものはほぼすべて見つかります。 , 以下のコードは検索結果の最初の項目から抜粋したものなので、参考にしてください(テストはしていません)。

リーリー PHP加解密出典: http://jerry17768java.blogspo...

ハッシュ化+ランダム化

Cookieによるユーザー識別などの権限判定の機能を追加すると良いと思います

暗号化/復号化にはOpenSSL AESが利用可能です

リーリー

関連ラベル:
php
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート