@を使ったURL偽装について記載します。
詐欺サイトでは、まぎらわしい表現を使って、偽のページに誘因するようですので注意しましょう。
@を使ったURL偽装
次のURLにアクセスすると、
https://www.yahoo.c0.jp@tansunohazama.sakura.ne.jp
※co.jp ではなく c0.jp となっている
当HPへのアクセスになります。
当HPはURLが長いので、違和感を感じると思うのですが、次のようなURLだと違和感を感じにくくなりませんか。
https://wvw.amazon.co.jp@8.8.8.8
※ www ではなく wvw となっている
このURLへジャンプすると、amazonではなく、google(アメリカ)のページが開かれます。
どうしてこうなるのか
これは、@以降をURLとみなす仕組みを使っています。
URLの仕様はRFC 3986: Uniform Resource Identifier (URI): Generic Syntaxで細かく定められており、URLの構文は次のように定められています、
scheme://user:password@host:port/path?query#fragment
※schemeは一般的に https あるいは http が使われる
portは省略されており、 443 あるいは 80 番ポートに繋がる
(例)https://login_user:123456abc@tansunohazama.sakura.ne.jp:443/wordpress?query#fragment
という形式で定められています。
この、user:password の部分は、もともとbasic認証というレガシーな技術に使われていましたが、現在はbasic認証自宅が非推奨となり、誰も使っていない技術となってます。(使っている方ごめんなさい)
ですから、@より前に記載されている文字列については、basic認証のユーザIDとみなされるので、@以降の部分がURLとして認識される仕組みとなっているのです。
思ったこと
昔から「basic認証はもうやめましょう」と言われ続けていますが、設定の簡単さから未だに使う人がいるのが現状です。
仕様を変えれば誰も使わなくなりますので、Basic認証を廃止し、早いうちにURLの構文から user:password を外した方がいいと思います。