私は新しいアプリケーションに取り組んでおり、その初期段階の認識を曖昧にするために、これを明らかにする可能性のあるインスタンスを曖昧にしたいと思います
$postId=000001
. 代わりに、 を取得し$postId=sH4d6s8d
ます。短いけどユニークな何か。
他のいくつかの質問を読みましたが、残念ながらほとんどの回答はセキュリティ上の問題に発展しています。ここではアプリケーションのセキュリティは問題ではありません。GET を介して行 ID のあいまいな表現を渡し、その URL を共有可能にする方法を探しているだけです。つまり、複数のユーザー マシンが難読化を解釈できます。
MySQL、XOR のサロゲート キーをざっと調べましたが、私はかなり環境にやさしく、すぐに理解できなくなりました。ここで適切な解決策は何ですか?例はありますか?ありがとう。
アップデート
シンプルな XOR + urlencode ソリューションを決定しました。すなわち:
$v = urlencode($var ^ $key)
$v = (urldecode($v) ^ $key)
これまでのテストから、これは私の目的に適しているようです。ただし、Firefox は表示のために自動デコードするように見えurlencode
、アイデアの目的全体を無効にします。
$v = r%5CQXr%5CQXr%5CP
<a href="whatevs.php?id=$v">link</a>
// Firefox renders the below anywhere link is visible (besides source)
whatevs.php?id=r\QXr\QXr\P
これは面倒です。ID はまだ不明瞭であり、ソースは「伝統的に」urlencode されていますが、これらの文字は URL で自然に見えません。しかし、本当の問題は、リンクをコピーして貼り付けた人が正しいリソースを取得できないことです。
これに対する簡単な修正はありますか?