ホームページ >バックエンド開発 >PHPチュートリアル >中国語文字および特殊な危険文字を送信する URL の解決策 (参考のみ) urldecode、base64_encode_PHP チュートリアル

中国語文字および特殊な危険文字を送信する URL の解決策 (参考のみ) urldecode、base64_encode_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-13 10:16:121048ブラウズ

URLに漢字や危険な特殊文字を渡す場合の解決策(参考のみ) urldecode、base64_encode

Web開発プロセス中に、URLに中国語の文字やhtmlなどの他の特殊文字を渡す必要がある場合、ブラウザごとにエンコード方法が異なるため、さまざまな小さな問題が常に発生します。中国人の場合、一般的なアプローチは次のとおりです:

これらのテキスト文字列を URL に渡す前に、まず urlencode($text) を実行します。

しかし、HTML 文字や SQL インジェクション関連の文字など、いくつかの非常に「危険な」文字については、それらが明らかにシステムに渡される場合、通常、システムはセキュリティ上の理由からそれらを除外します。

それでは、これらの危険な文字がフィルタリングされないようにする必要がある場合はどうすればよいでしょうか?

私が考える方法は、最初に base64_encode($text) でエンコードし、サーバーに到達したら、base64_decode($text) を与えてデコードすることです。

完璧に見えますが、使用中に別の問題が発生しました。

base64_encodeのエンコードされた文字列には、「/」、「+」、「=」、などの文字が含まれています。

これらの文字は、「スペース」を意味する「+」などの URL エンコードの特殊文字ですが、ブラウザによって「スペース」のエンコード方法が異なり、「+」を使用するものと、「20」を使用するものがあります。たとえば、これらの

base64_encode エンコードされた文字列を URL に渡すと、異なるブラウザーで閲覧すると、サーバーは異なる値を取得します。

そこで、私は妥協案を考えました。まず、これらの Base64 でエンコードされた特殊文字を置き換え、サーバーに到達した後に元に戻すというものです。

リーリー

ブラウザで得られる効果は以下の通りです

xOO6w6Osuf65_aiy_atL_b00Ke5_b8jnus6ho6GjoaM_c

はは、それがどのように機能するか見てみましょう。 。 。

興味がありそうな記事

    PHP関数urlencode()、urldecode()、rawurlencode()、rawurldecode()
  • jsは英語の文字と数字のみの入力に制限されており、中国語やその他の特殊なメソッドは入力できません文字
  • php は独自の MVC フレームワークの簡単なケースを作成し、参考のためにアイデアを提供します
  • AJAX の POST または GET で送信される文字化けする中国語の解決策
  • js URL 内の指定されたパラメーターの値を変更します
  • A curlのpostを使ってデータを送信する方法とPHPでWebページのデータを取得する方法のまとめ
  • phpでは正規表現の入力が英字と数字のみに制限されています
  • 右クリック、コピー、名前を付けて保存は禁止です、Webページのソースを表示 ファイルおよびその他の機能によりWebページのソースコード保護を実現

http://www.bkjia.com/PHPjc/898528.htmlwww.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/898528.html技術記事 URL に漢字や危険な特殊文字を渡すための解決策 (参考のみ) urldecode、base64_encode Web 開発プロセス中に、URL に漢字やその他の文字を渡す必要がある場合...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。