0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

値をURLのパラメータに追加するにあたって起きたエンコードの落とし穴

Posted at

エンコードの落とし穴

タイトルの通り
値をURLのパラメータで渡すにあたって、文字列を直書きはよろしくないだろうということで、
エンコードをしたものをURLに追加しました。
そこでの失敗例です。

間違っているのに出来てしまう

間違っているのにエラーになるわけでもないため発見が遅れました。

今回は乗せたかった値は以下
「イベント名=〇〇〇・〇〇〇のための就活セミナー」

エンコードは以下サイトを利用
https://tech-unlimited.com/urlencode.html
https://www.tagindex.com/cgi-lib/encode/url.cgi

結果
「イベント名=〇〇〇・〇〇〇のためのオンラインセミナー」
という値が渡されていました。

原因

エンコードの際
「イベント名=〇〇〇・〇〇〇のための就活セミナー」
をすべてエンコードにしていたため。

対処

エンコードを
・「イベント名」
・「〇〇〇・〇〇〇のための就活セミナー」
に分けてエンコード

パラメータへの記述は以下
(「イベント名」をエンコードした文字列)=(「〇〇〇・〇〇〇のための就活セミナー」をエンコードした文字列)

所感

=(イコール)を含めてもエンコードが出来てしまい、パラメータに乗っけても微妙な違いだけで普通に値を渡せてしまう。という罠でした。
=の両端(オペランド?)を別々にエンコードして=(イコール)で繋ぐという一手間で解決となりました。
なぜこのような変換になるのか、というところまでは分からないので、エンコードについてもその内調べられればと思います。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?