ruby の下記のようなscript(url,id,pass は変更しています。)で Basic 認証を通るようにしています。

このスクリプトで外のサイトからアクセスすると、通るのですが、同じサーバ内からだと通りません。
status code 403がかえってきます。同じサーバ内からは、Basic 認証はずすと通ります。
このような現象の原因が何か考えられるでしょうか?


#!/usr/bin/ruby
require "rubygems"
require "open-uri"
require "hpricot"
require 'mechanize'
require 'logger'
url = "http://hoge.com"


agent = WWW::Mechanize.new
agent.user_agent = 'FireFox'
agent.auth("yama","kawa")
agent.log = Logger.new($stdout)
page = agent.get(url)
puts page.body

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:2008/09/12 20:42:56
  • 終了:2008/09/19 20:45:02

回答(2件)

id:poch-7003 No.1

poch-7003回答回数43ベストアンサー獲得回数82008/09/12 22:23:25

ポイント35pt

ローカルのWebサーバをNATか何かで公開してると言うことですか?

であれば,そうなる可能性はありますね.

#最近のルータだとちゃんとみれたりするみたいですが.

サーバのローカルIPをアドレスに打てば見れないですか?

もしくは,プロキシを介せば見れるはずです.

http://sakaguch.com/PastBBS/0004/B0002272.html

id:isogaya

いえ、ローカルでも 同じスクリプトで、Basic 認証はずと見れます。それから、

php で同様のスクリプトをつくるといきますので、IP制限の問題ではないと思われます。

2008/09/12 23:47:45
id:tak-n No.2

tak-n回答回数3ベストアンサー獲得回数12008/09/13 20:33:28

ポイント35pt

サーバ側の情報がないので推測ですが・・。

Basic認証をはずすときに他の設定も外れてませんか?

例えば、(サーバがApacheだとしたら)Options Indexesとか。

せめて403の原因が認証のエラーなのか、それ以外の原因なのかがわかればよいのですが。

http://httpd.apache.org/docs/2.2/ja/mod/core.html#options

id:isogaya

外部から、まったく同じスクリプトで通っています。

PHP で同様のスクリプトを組んで問題ないのでなんだろうと思っています。

2008/09/14 00:27:46
  • id:poch-7003
    ちなみに,そのrubyスクリプトがあるホストからwgetだとどうでしょうか?
    wget --http-user={username} --http-passwd={password} {url}

    これが通るとすればrubyの問題でしょうか.

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません