ホームページ >バックエンド開発 >PHPチュートリアル >URL で Base64 でエンコードされた文字列を安全に渡すにはどうすればよいですか?

URL で Base64 でエンコードされた文字列を安全に渡すにはどうすればよいですか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-12-15 18:13:15667ブラウズ

How Can I Safely Pass Base64-Encoded Strings in URLs?

Base64 でエンコードされた文字列を URL で安全に渡す

Base64 でエンコードされた文字列は GET パラメータを介して安全に渡せるという誤解がよくあります。 Base64 エンコード自体は、ネットワーク経由で送信するバイナリ データをエンコードする安全な方法ですが、URL パラメータを渡すときは追加の考慮事項があります。

標準の Base64 エンコードでは、「 」など、URL に適さない文字が使用されます。 「/」と「=」。 Base64 でエンコードされた文字列を URL で渡す場合は、URL エンコードを使用して再度エンコードする必要があります。そうしないと、特殊文字が URL パスまたはクエリ文字列の一部として解釈され、セキュリティ上の問題が発生する可能性があります。

これに対処するには、URL に適さない文字を置き換えるカスタム エンコード スキームを使用できます。違うものと一緒に。たとえば、「 」の代わりに「-」、「/」の代わりに「_」、「=」の代わりに使用できます。このカスタム エンコードを使用すると、base64 でエンコードされた文字列がサーバーによって誤って別のものとして解釈されないようにすることができます。

カスタム エンコード/デコード関数を作成する方法の例を次に示します。

def base64_url_encode(input_string):
    return input_string.encode('utf-8').translate(bytes.maketrans('+/=', '-_='))

def base64_url_decode(encoded_string):
    return encoded_string.translate(bytes.maketrans('-_=', '+/=')).decode('utf-8')

これらの関数を使用すると、潜在的なセキュリティ問題を心配することなく、URL パラメーターで Base64 でエンコードされた文字列を安全に渡すことができます。

以上がURL で Base64 でエンコードされた文字列を安全に渡すにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。