質問

会社の注文を管理するためのPHPアプリケーションを開発しています。注文を表示するには、URLは現在です /orders/view/3502.

注文ID番号をURLに表示したくないため、CodeIgniterの暗号化ライブラリを使用してURLのIDを暗号化しました。 URL(暗号化後)のように見えます /orders/view/AaffGdQQ.

私が抱えている問題は、暗号化されたIDには、URLのときに正しく動作しない前方のスラッシュまたはプラス記号が含まれることがあることです。 CodeIgniterは、スラッシュに基づいてURLを読み取ります。したがって、暗号化されたIDにスラッシュがある場合、それは1つではなく2つの変数として読み取られます。また、プラスサインはURLのスペースとして解釈されます。

それで、私の質問は、どのようにしてIDを暗号化し、文字列にプラスのサインやスラッシュが含まれていないことを確認するにはどうすればよいですか?

編集:暗号化されたIDにスラッシュまたはプラスサインが含まれているかどうか、そしてもしそうなら、再び暗号化するかどうかを確認するという考えがありました。何らかの理由で、IDが暗号化されるたびに異なるため、これは機能します。

役に立ちましたか?

解決

base64_encode()もできます。それはまた、それをはるかに長くし、「より安全」に見えるでしょう。また、難読化の層を追加します。

他のヒント

たぶん、クリップされたデータを通過します urlencode() これを修正しますか?その後、Codeigniterが実行される前にデータを傍受して実行する必要があります。 urldecode() その上。

ちょっとしたアイデアなので、幸運を!

暗号化が使用しない文字を探して、それが収まるようにそれらを交換します。 URLを使用する場合は、元に戻します。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top