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/19 20:45:02
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答2件)

id:poch-7003 No.1

回答回数43ベストアンサー獲得回数8

ポイント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

回答回数3ベストアンサー獲得回数1

ポイント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の問題でしょうか.

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

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

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

回答リクエストを送信したユーザーはいません