2011年5月20日金曜日

プログラムからYahoo!にログインする際に、不正アクセス防止機能により文字認証画面が出た時の対処法

私が担当している仕事の中に、Yahoo!オークションを利用したものがあるのですが、そのシステムが昨夜21時前頃から突然動かなくなりました。

調べてみると、プログラムからYahoo!にログインする際に

指定されたページを表示できません。
不正なアクセスを防止する機能により、お客様がお使いの環境からのご利用を制限しています。


というエラーが発生しているようです。



これまでも似たような症状が出たことがあり、その時は数時間経てば元に戻っていたので、様子見していたのですが、今回は半日以上経っても回復しない。

これは何かあったのかもしれない、ということでネットで調べてみると、ちょっと情報の正確性は分かりませんが、最近Yahooのアカウントが大量に不正ログインされているとか。

ガジェ通Aチーム: Yahoo! JAPANで不正ログインが多数報告される 至急ご確認を!

もし、これが本当なら、不正ログインへの対応として、Yahoo側がログイン時の処理を変更したということも考えられます。

実際、この画面が出るようになったことを書いているブログもありました。

指定されたページを表示できません。 - きのうのレジスタンス

そこで、システムのログイン部分を見直すことにし、色々実験してみたところ、次のようにすればOKでした。

1. ログイン画面にアクセスする時のUserAgentを実在のブラウザのものに設定する。

2. YahooのログインフォームのURL(https://login.yahoo.co.jp/config/login)をGETメソッドで叩く。この時にあるクッキーが発行されるので保存する。
※ここで、1.のUserAgentの設定をしていないと、このクッキーが発行されず、次のログインに失敗します。

3. YahooのログインURL(https://login.yahoo.co.jp/config/login)に対してID,PASSWORDをPOSTする。
※昨日までは、この3.だけでOKでした。

ということで、似たような症状で困っている方がおられたら、この方法を試してみてください。

ただ、この問題、大きくなるようなら、Yahooがさらに対策を打ってくる可能性も高いと思います。
そうなると、またプログラムを改修しないといけなくなりますね...

IP単位で、特殊アクセスを許可してもらえるようになるといいのですが。

[2011/06/15 追記]
どうも、今日の午後3時頃より、Yahoo側でのログイン処理の仕方がまた変更になったようで、上記のやり方では、ログインできなくなっています。
新たな対処法を記事にしましたので、こちらもぜひ読んでみてください。

→Yahoo!にログインする際に文字認証が出る原因およびプログラムからログインする方法

関連記事


ブログランキングに参加しています。
最後に応援クリックしていただけると、とても嬉しいです!

1 件のコメント:

匿名 さんのコメント...

firefoxを使っている場合は、アドオンのYahoo! Mail Notifierが原因のようです。「起動時にメールをチェック」のオフにするか、削除しないとダメなようです。