プロが教える店舗&オフィスのセキュリティ対策術

URLエンコードについて教えていただきたいことがあります。

<a href=http://hoge.com/hoge?http%3A%2F%2Fhuga.com>hoge< …
というリンクは、当然
http://hoge.com/hoge?http%3A%2F%2Fhuga.com
というURLに対して張られますよね?

しかし、プロトコルがHTTPSの場合、
https://hoge.com/hoge?http%253A%252F%252Fhuga.com
というように、":"や"/"のエンコードされた値に"25"が付加されたURLにリンクが張られてしまうようなのです。

これはなぜなのでしょうか?

ご存じの方、教えていただけると幸いです。

A 回答 (1件)

%25 は % と言う文字のURLエンコード表現です。


どこで再変換しているのかまでは解らないけど、2重にURLエンコードされているようです。

そのリンク用文字列は、cgiなどからのページ出力時にそうなっていると言うことでしょうか?
であれば、cgiの問題でしょうし、

静的ページ(html)のリンク用文字列にも変換が掛かるのはちょっと考えられないけど。

また、ブラウザのurl欄に直接入力しても、変換されてしまうということではないですよね。
もし、そうならサーバーの設定あたりを見直してみては?
    • good
    • 0
この回答へのお礼

解決しました。どうもありがとうございます!

実は、これはmixiで起こっている現象です。
mixiにHTTPSを使ってアクセスした場合、HTTPの方にリダイレクトされるのですが、そのときに再度URLエンコードが行われるようになっていのが原因だったようです。

HTTPSやHTTP自体には何も問題はありませんでした。

どうもありがとうございました!

お礼日時:2007/02/17 17:50

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!