urlfetch が使うソースIPアドレス

235 views
Skip to first unread message

kojit

unread,
Oct 28, 2010, 3:45:56 AM10/28/10
to Google-App-Engine-Japan
たしろと申します。
お世話になります。

あるサイトにログインしてデータをポストするアプリを pythonで作成しています。ローカルでは動作するのですが、プロダクションサーバーでは動作
しません。

調べたところ、そのサイトは cookieにJSESSIONIDというセッションIDを返してくるのですが、ローカルで動かしているときはログイン後
は常に一定の値を返してくるのに、プロダクションでは、ログイン時に返してきたのと次にアクセスしたときに返してくるIDが違い、セッションエラーが
返ってきてしまいます。

はじめはキャッシュの問題かと思い、Cache-Control: no-cache,max-age=0 と、Pragma: no-cacheをつ
けてみましたが、状況は変わりませんでした。

恐らくそのサイトはセッションハイジャックを防ぐために I.P.address等でセッションを管理してるのだろうという考えに達しました。

調べてみると、urlfetchのソースIPアドレスは、固定ではなく、リクエストの度に違うアドレスになっているようです。

Connection: keep-alive をつけてみましたが、状況は変わりませんでした。

連続した数回のアクセス分で良いので、urlfetchのソースIPアドレスを固定させる方法はないでしょうか?

大変困っています。もし他の方法で回避できるアイデアがあれば教えてくださると助かります。

よろしくお願いします。

kojit

unread,
Nov 2, 2010, 2:29:35 AM11/2/10
to Google-App-Engine-Japan
自己解決しました。

http://blog.thetwitfeeder.com/2010/01/proxying-url-fetch-requests-from-google.html

この記事を読んで、同じような中継するプログラムを作って、レンタルサーバー上に置いてアクセスするようにしました。

しかしながら、色々と実験中に urlfetchを follow_redirects=Falseとしてアクセスし、自前でリダイレクトすれば、中継
しなくても問題なく元のサイトにアクセスできることがわかりました。したがって、そのサイトは I.P.adress等でセクションハイジャックなどを
防ぐようなことはしていないと思われますが、なぜ、follow_redirects=Trueで動かないのは謎のままです。

色々と遠回りしましたがとにかく解決できてよかったです。
お騒がせしました。

yagizo

unread,
Nov 2, 2010, 10:42:21 AM11/2/10
to Google-App-Engine-Japan
yagizoです。

解決のお役には立てず、後付けになりますが、、、

> なぜ、follow_redirects=Trueで動かないのは謎のままです。

に関しては、URLFetchのドキュメントに以下の記述がありました。
-----------------------------------------------------------------------------------------------------------
警告: Cookie はリダイレクト時に処理されません。Cookie の処理が必要な場合は、follow_redirects をFalse に
設定して、Cookie とリダイレクトの両方を手動で処理します。
-----------------------------------------------------------------------------------------------------------

理由はわかりません(まあ、色々問題があるんでしょう)が、とにかくそういうものみたいです。


On 11月2日, 午後3:29, kojit <koji.tash...@gmail.com> wrote:
> 自己解決しました。
>
> http://blog.thetwitfeeder.com/2010/01/proxying-url-fetch-requests-fro...

kojit

unread,
Nov 4, 2010, 3:52:19 AM11/4/10
to Google-App-Engine-Japan
なるほどー、情報ありがとうございました。
クラウドだと実際にどんな生のパケットが出て入ってるのかを確認できないのがつらいですね。。。
Reply all
Reply to author
Forward
0 new messages