質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Q&A

解決済

1回答

1883閲覧

Ruby Net::HTTPでbasic突破したい

kazuyakazuya

総合スコア193

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

0グッド

0クリップ

投稿2019/08/01 16:45

rubyのnet/httpでbasic認証を突破したいです。こちらのサイトで
user・・・user
password・・・id

この記事を参考に作成しました。

ruby

1# -*- coding : utf-8 -*- 2 3require 'open-uri' 4require 'net/http' 5params = {'deviceToken' => 'hoge', 'email' => '僕のあどれす','pwd' => 'マイパスワード','type'=>'normal'} 6 7url = URI.parse('http://www.hogehoge.api') 8req = Net::HTTP::Post.new(url.path) 9req.basic_auth 'basic認証ID', 'basic認証パス' 10req.set_form_data(params) 11res = Net::HTTP.new(url.host, url.port).start {|http| http.request(req) } 12case res 13when Net::HTTPSuccess, Net::HTTPRedirection 14 p "OK" 15 p res.body 16else 17 res.value 18end 19 20

以下自分が作ったコード

ruby

1require 'net/http' 2request = Net::HTTP::Post.new("/top/index") 3request.basic_auth('user','id') 4http = Net::HTTP.new("young-refuge-27377.herokuapp.com",443) 5http.use_ssl = true #SSL通信をするためのコード 6http.verify_mode = OpenSSL::SSL::VERIFY_NONE #SSL通信をするためのコード 7a = http.request(request) 8puts a.code 9a.each do |name,value| 10 puts name + ":" + value 11end

実行結果として

cmd

1404 2server:Cowboy 3date:Thu, 01 Aug 2019 16:31:50 GMT 4connection:close 5content-type:text/html; charset=UTF-8 6x-request-id:f2cb7bf8-ffd6-409e-8ba1-ad2bbcc8dde6 7x-runtime:0.006367 8content-length:1722 9via:1.1 vegur

basic認証をするところの
userとpasswordを変更して試したのですが
結果は変わりませんでした。
そもそも、どこに問題があるのかがわからないので
参考になるリンクまたは説明をお願いします。

追記
こちらのサイトでにアクセス
するとパスが /  となっていますが
ルーティング設定では以下のようになっています。

ruby

1Rails.application.routes.draw do 2 # For details on the DSL available within this file, see http://guides.rubyonrails.org/routing.html 3  root "top#index" 4end

なのでパスをtop/indexにしたらできるのかと思いやってみたのですが
そちらも結果は変わりませんでした。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

rails routesコマンド等で確認できますが

ruby

1root "top#index"

で定義できるのは、"/"へのGETリクエストです。POSTではありません。

投稿2019/08/01 23:02

asm

総合スコア15147

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kazuyakazuya

2019/08/01 23:17

ありがとうございます。Getに変更したらいけました。 basicはPostではないといけないのだと思っていましたが べつにそういうわけではなかったのですね。。。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問