2ちゃんねるブラウザからセッションIDの取得

このQ&Aのポイント
  • 2ちゃんねるブラウザでセッションIDを取得する方法を紹介します。
  • セッションIDを取得するためには、2ちゃんねるブラウザを使用する必要があります。
  • セッションIDを取得するためのPOST文を送信したが、エラーが返却されました。
回答を見る
  • ベストアンサー

2ちゃんねるブラウザからセッションIDの取得

ITです。お世話になっています。 2ちゃんねるへの書き込みを2ちゃんねるブラウザ(禁断の壺)経由で行う為には、セッションIDを取得する 必要があるらしいので、 以下のPOST文(1)でセッションIDの取得を試みたのですが、(2)の内容のエラーが返却されます。 URLは「2chv.tora3.net」 ポートは443を指定しています (1).POST文 ---------------------------------------- POST /futen.cgi HTTP/1.1 Connection: keep-alive X-2ch-UA: Monazilla/1.00 Content-Length: 21 User-Agent: DOLIB/1.00 Referer: https://2chv.tora3.net/ Host: 2chv.tora3.net Connection: close Accept: text/html, */* ID=xxxxxx&PW=yyyyyyyy ---------------------------------------- ※IDとPWは実際のIDとパスワードを平文で指定しています。 Content-Lengthの値も実際の文字の長さを指定しています。 (2).サーバの応答 -------------------------------------------------------------------------------- <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> <html><head> <title>400 Bad Request</title> </head><body> <h1>Bad Request</h1> <p>Your browser sent a request that this server could not understand.<br /> Reason: You're speaking plain HTTP to an SSL-enabled server port.<br /> Instead use the HTTPS scheme to access this URL, please.<br /> <blockquote>Hint: <a href="https://2chv.tora3.net/"><b>https://2chv.tora3.net/</ b></a></blockquote></p> <hr /> <address>Apache/2.0.49 (Unix) PHP/4.3.6 mod_ssl/2.0.49 OpenSSL/0.9.7c-p1 Server at 2chv.tora3.net Port 443</address> </body></html> -------------------------------------------------------------------------------- お忙しい所申し訳ありませんが、良い方法がありましたらご教授お願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • sha-girl
  • ベストアンサー率52% (430/816)
回答No.3

>SSL接続についてですが、ポート番号を443にするだけではダメですか。 はい ダメです。 >具体的な方法を教えて下さい。 >使用言語はVC++6.0(APIベース)、winsockです。 >OpenSSLをインストールする必要はありますか。 OpenSSL + WinSockでも可能だとは思いますが、OpenSSL について詳しくないので具体的にはわかりません。 一番簡単なのはWinInetを使う方法だと思います。 http://msdn.microsoft.com/ja-jp/library/3w2azyt6(VS.80).aspx (MFCならCInternetSessionで使えます) WinInet + https + INTERNET_FLAG_SECURE 或いは CInternetSession + https + INTERNET_FLAG_SECURE等で検索してみてください。 http://support.microsoft.com/kb/168151/ja ※winsockを使ってhttpsは自力で実装するという方法もありますがRSA等から実装するのは大変です

tadokoro1
質問者

お礼

ITです。詳しい説明有難う御座います。 やはりwinsock+OpenSSLでの実装は難しいようですね。 OpenSSLについて調べてみたのですが、自分でコンパイルする必要があり、 その為に別途PerlやMASM等もインストールしなければならず、現実的ではないと思いました。 貴殿がお勧めのWinInetを試してみる事にします。 貴重なご意見有難う御座いました。 OpenSSLについては又、別の機会に挑戦しようと思います。

その他の回答 (2)

  • osamuy
  • ベストアンサー率42% (1231/2878)
回答No.2

単にSSLで接続してないだけなのでは? いや、流石にそれはないですか。

tadokoro1
質問者

補足

ITです。レス有難う御座います。 SSL接続についてですが、ポート番号を443にするだけではダメですか。 具体的な方法を教えて下さい。 使用言語はVC++6.0(APIベース)、winsockです。 OpenSSLをインストールする必要はありますか。

  • ohtawa
  • ベストアンサー率23% (9/38)
回答No.1

?????????????????? (1)POSTって そのまえにGETがあってその結果をもとにやるんじゃなかったっけ (2)2chってユーザがこんなハイレベルなことをしらないとできないのかな

tadokoro1
質問者

補足

POSTは直前にGETを実行しなくても可能です ここは貴方のような素人の来る所ではありません

関連するQ&A

  • PHPのセッションIDについて

    PHP5.3.14を使っています。 セッションについて勉強中です。 セッションを使ってページの表示回数をカウントアップするソースと、 そのセッションを破棄するソースの2種類を用意しました。 ※それぞれ、session_id()をecho表示しています。 クッキーを使った状態でこれらを動かすと、 リセットする(リンクを押してリロードする)度にセッションIDが変わるのですが、 クッキーを使わずに定義済み定数SIDを使って動かすと、 カウント値は元に戻るのですが、 リセットしてもセッションIDが変わりません。 どうすれば、新しいセッションIDを発行(SIDの値を更新)できるのでしょうか? よろしくお願いします。 【以下、ソース2種類と、iniファイルの一部です】 ●up.php <?php session_start(); if (empty($_SESSION['count'])) { $_SESSION['count'] = 1; } else { $_SESSION['count']++; } echo ("###".'"'.session_name().'='.session_id().'"'."</br>"); ?> <p> <?php echo $_SESSION['count']; ?> 回目。 </p> <p><a href="up.php">カウントアップ</A> </p> <p> <a href="reset.php">リセット</A> </p> ●reset.php <?php session_start(); echo ("###".'"'.session_name().'='.session_id().'"'."</br>"); echo ("##### ". $_SESSION['count']."回表示しました。</br>"); $_SESSION = array(); if (isset($_COOKIE[session_name()])) { setcookie(session_name(), '', time()-42000, '/'); } if(isset($_REQUEST[session_name()])){ $_REQUEST[session_name()]="" ; } session_destroy(); ?> <p> <a href="up.php">初めからカウントする</A> </p> ●php.ini (クッキーを使わずSIDを使うを設定) session.use_trans_sid = 1 session.use_only_cookies=0 session.use_cookies=0

    • 締切済み
    • PHP
  • PEAR HTTP_Requestでのヘッダ送信

    PEARのHTTP_Requestを使用し、 下記処理にてTEST_URL向けにPOSTとヘッダを同時に送信する処理を行いたいのですが 411 Length Requiredで返ってきてしまします。 サーバのログには Invalid URI in request Connection: Keep-Alive というログがerrorログに出ています。 そこでRFCを読んで見ると、 転送コーディングが施されていない場合は Content-Length ヘッダは送られなければならないが、 メッセージボディ中のオクテット数と 正確に一致しなければならないとの記載がありました。 ここに引っかかっているのかもと思い対策しようと思いましたが メッセージボディのlength(下記の☆部分)をどのように拾うかがわかりません。 require_once "HTTP/Request.php"; $req = &new HTTP_Request(TEST_URL,array()); $req->setURL(TEST_URL); $req->setMethod(HTTP_REQUEST_METHOD_POST); $req->addHeader('Host',"test.hogehoge.jp\r\n"); $req->addHeader('Content-Length',"-☆-\r\n"); $req->addHeader('Connection', "Keep-Alive\r\n"); $req->addHeader('User-Agent',"TEST ABCDEFG\r\n"); $req->addPostData('TEST_POST', 'testnano'); $result = $req->sendRequest(); if(PEAR::isError($result)) { echo $result->getMessage(); echo "<br />"; } else { echo $req->getResponseCode(); echo "<br />"; echo $req->getResponseBody(); echo "<br />"; } もしかして違う原因でしょうか? よろしくおねがいします。

    • 締切済み
    • PHP
  • php5.2.9に変更後に不具合について

    php初心者です。 レンタルサバ―なのですが、php4.4.7からphp5.2.9に変更後うまくいかなくて困っています。 header("Location: http://○○○/top.php");がうまく飛びません。 ページを実行すると真っ白の画面になってしまいます。 以前のバージョンですと、問題なく動いていました。 下記を見てください。 どうしたらよいのでしょうか? <?php mysql_query('SET NAMES ujis'); require_once( "function.php" ); session_start(); if ( $_REQUEST[ "SUBMIT" ] != "" ) { if ( ( $_POST[ "VALUE_ID" ] != "" ) && ( $_POST[ "VALUE_PW" ] != "" ) ) { $k_id = $_POST[ "VALUE_ID" ]; $k_pw = $_POST[ "VALUE_PW" ]; $con=mysql_connect('aaa','aaa','aaa') or die("MySQL接続エラー: ".mysql_error()); mysql_select_db('aaa',$con); $sql= "select * from あああ where id='$k_id' and pw='$k_pw'"; $result=mysql_query($sql); $rows=mysql_num_rows($result); if($rows==1){ while($row=mysql_fetch_array($result)){ $d_id = $row["id"]; $d_pw = $row["pw"]; } } } } if ( !isset( $_SESSION[ "D_ID" ] ) ) { $_SESSION[ "D_ID" ] = ""; } $_SESSION[ "D_ID" ] = $d_id; if ( !isset( $_SESSION[ "D_PW" ] ) ) { $_SESSION[ "D_PW" ] = ""; } $_SESSION[ "D_PW" ] = $d_pw; if ( !isset( $_SESSION[ "K_ID" ] ) ) { $_SESSION[ "K_ID" ] = ""; } $_SESSION[ "K_ID" ] = $k_id; if ( !isset( $_SESSION[ "K_PW" ] ) ) { $_SESSION[ "K_PW" ] = ""; } $_SESSION[ "K_PW" ] = $k_pw; if ( ( $_SESSION[ "D_ID" ] == "" ) || ( $_SESSION[ "D_PW" ] == "" ) ) { print( "<br><center>○○○○○○○○<br>" ); print( "<br>○○○○○○○○○○○○○○○○<br>" ); print( "<br>○○○○○○○○<br>" ); print( "<br><a href=\"index.html\">[ BACK ]</a></center>" ); exit(); }elseif( CheckID_PW( $_SESSION[ "K_ID" ], $_SESSION[ "K_PW" ], $_SESSION[ "D_ID" ], $_SESSION[ "D_PW" ] ) == false ) { print( "<br><center>○○○○○○○○<br>" ); print( "<br><center>○○○○○○○○○○○○○○○○<br>" ); print( "<br><center>○○○○○○○○" ); print( "<br><br><a href=\"index.html\">[ BACK ]</a></center></body>" ); } else {header("Location: http://○○○/top.php");} ?>

    • 締切済み
    • PHP
  • PHPでのセッション管理について

    こんにちは。 PHP初心者の者ですがよろしくお願いします。 現在、ログイン時にセッションを登録し、 メイン画面を表示している部分でセッションを 取得したいのですがうまく取得できません。 メイン画面は、フレームで2つに分割してあります。 ご協力お願いします。 ソースの一部 【a.php】 // セッション名の指定 session_name('my_session'); // ページキャッシュ session_cache_limiter('nocache'); // 情報の保存期間(30分) session_cache_expire(30); //セッション開始 session_start(); $_SESSION["id"]=$_POST["id"]; $_SESSION["pw"]=$_POST["pw"]; $_SESSION["user_cd"]=$user_cd; $_SESSION["syain_name"]=$syain_name; $sid = session_id(); //接続先指定 header("Location: http://".$_SERVER["HTTP_HOST"].dirname($_SERVER["PHP_SELF"])."/frame.php?PHPSESSID=$sid"); ?> 【frame.php】 <frameset rows="*" cols="151,*" framespacing="0" frameborder="1" border="0"> <frame src="menu.php" name="leftFrame" scrolling="NO" noresize> <frame src="main.php" name="mainFrame"> </frameset> 【menu.php】 <?php session_start(); $id = $_SESSION["id"]; $user_cd = $_SESSION["user_cd"]; $syain_name = $_SESSION["syain_name"]; print $syain_name."<br>"; //←何も表示されない ?>

    • ベストアンサー
    • PHP
  • セッション

    セッションについて教えて下さい。 指定のID、パスワードでログインしようと思っています。 ソースを記載しますので、お教え下さい。 ID:aaa パスワード:111とします。 [送り側フォーム] <form action="/test2.asp" method="POST" id=form1 name=form1> <input type="text" name="id" value=""><br> <input type="password" name="passwd" value=""> <input type="submit" value="LOGIN" id=submit1 name=submit1> </form> とし、 [受け取り側、認証 test2.asp ] <% If Session("user_test") <> "1" Then Response.Redirect "/test.asp" Response.End() End If %>ここで認証を判断し、認証できなければtest.aspへもどるとし、 Dim id, passwd id = Request.Form("id") passwd = Request.Form("passwd") Session("user_login") = "id" Session("user_login") = "passwd" IF id = "aaa" and passwd = "111" THEN Session("user_test") = 1 Response.Write ("OK") ELSE Response.Write ("ちがうよ") END IF %> ID、パスワードをセッション変数にいれ、各ページで認証すると言う事をやりたいのですが、うまくいきません。 どこがわるいか、お教え下さい。 ※以前にも似たような質問をしているのですが、改善されずお手上げです。

  • クッキーを使わないセッションPHP

    を作ったのですがまずい点があったら教えて下さい 入力を一行ずつ並べるものです <?php session_name('asdsddzddzfssd'); session_start(); session_register('lines'); $self=$_SERVER['PHP_SELF'].'?'.htmlspecialchars(SID); $line=isset($_POST['line'])?htmlspecialchars($_POST['line']):''; if($line!='')$_SESSION['lines'] .= $line.'<br/>'; echo' <form action="'.$self.'" method="post"> <p>1行: <input name="line"/></p> </form> 過去の全行:<br/>'.$_SESSION['lines']; ?>

    • ベストアンサー
    • PHP
  • 古いセッションが消えない

    フォームからのデータを受け取るPHP、sesssion.phpが下記のとおりだとします。 <? header('Cache-Control: nostore, no-cache, must-revvalidate'); session_cache_limiter('private_no_expire'); session_start(); header("Content-Type: text/html; charset=EUC"); $http = $_SERVER['HTTP_REFERER']; //どこから来たか $form_id = $_POST['form_id']; $form_pass = $_POST['form_pass']; $flg = $_POST['t']; $session = session_id(); if($http == "http://192.168.1.250/~fukazawa/session/form.html"){ $_SESSION['id'] = $form_id; $_SESSION['pass'] = $form_pass; } $test = $_SESSION['id']; $test1 = $_SESSION['pass']; if($flg == "t"){ echo <<<EOM <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=euc-jp"> <title> </title> </head> <body> ◎$test<br />$test1 <br><br><br><a href="session.php">test</a><br><br> <a href="session.php?t=test">test2</a> </body> </html> EOM; }else{ echo <<<EOM <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=euc-jp"> <title> </title> </head> <body> ◎$test<br />$test1 <a href="session.php">test</a><br> <a href="session.php?t=test">test2</a> </body> </html> EOM; } ?> 引数で表示させる内容を異なるようにするPHPファイルです。 仮に一回目にIDを「てすと」、パスワードを「ttt」でログインした場合、session.php・session.php?t=testに表示されるのは、 「◎てすと ttt」 です。 そして、これをいったんログアウトして、今度は ID「二回目」、パスワード「two」でログインすると、 session.phpには 「◎二回目 two 」と表示されますが、 session.php?t=test に飛んだ場合、 一回目のIDとパスワード、つまり 「◎てすと ttt」 が表示されてしまいます。 ブラウザをリロードすると 「◎二回目 two 」 と表示されます。 これは、前のセッションがまだ残ってしまっているということなのでしょうか。 対処法が分からず困っています。

    • ベストアンサー
    • PHP
  • ソケットの使い方が分からない

    ので動作を見るためにとほほを見て WidnowsMeで x.pl: use Socket; $addr=(gethostbyname("www.ndl.go.jp"))[4]; $name=pack("S n a4 x8", 2, 80, $addr); socket(S,PF_INET,SOCK_STREAM,0); connect(S, $name); binmode(S); select(S); $|=1; select(stdout); print S "GET index.html HTTP/1.0\r\n\r\n"; while(<S>){print;} close(S); を作り perl x.pl を実行すると HTTP/1.1 400 Bad Request Date: Fri, 04 Feb 2005 15:40:15 GMT Server: Apache Content-Length: 226 Connection: close Content-Type: text/html; charset=iso-8859-1 <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> <html><head> <title>400 Bad Request</title> </head><body> <h1>Bad Request</h1> <p>Your browser sent a request that this server could not understand.<br /> </p> </body></html> が帰ってきました なお http://www.ndl.go.jp/index.html は国立国会図書館のページでブラウザのアドレス欄に入れると正常に見れます どのように修正すればよいでしょうか?

    • ベストアンサー
    • Perl
  • ブラウザーでの入力値をサーブレットで取得する方法

    サーブレットの開発を行っていますが、ブラウザー側で 入力したパラメーターをサーブレットで受け取りたいのですがうまくいきません。 受け取りたいのは、以下のHTMLで作成したテキストボックスへの入力値です <form name="form7" method="post" action=""> <p> <input type="text" name="textfield2" size="4" maxlength="4"> 年 <input type="text" name="textfield" size="2" maxlength="2"> 月</p> </form> ブラウザー側からは <form action="http://localhost/servlet/yuushi" method=post> の指定を行っています。 サーブレットでの受け取り方は、 String p=request.getParameter("textfield2"); String p1=request.getParameter("textfield"); としましたが、p、p1とも何の値も入りませんでした。 getParameterで取得できると思ったのですが取得できませんでした。 値の取得方法の御教示をお願いいたします。

    • ベストアンサー
    • Java
  • ブラウザでHTTPレスポンスがうけとれない

    単にIDを返すだけのWebサーバに、telnetから80番ポートにアクセスし、HTTPリクエストを送るとレスポンスを受け取れるのに ブラウザからアクセスするとレスポンスを受けとれずタイムアウトになってしまいます。 WireSharkでパケットを調べてみると、ブラウザからアクセスした場合も、 問題なくWebサーバからIDが返されていることは確認できました。 しかし、ブラウザではサーバからのレスポンス待ち状態が続き、しばらくするとタイムアウトになってしまいます。 また、他のPCのブラウザから該当のWebサーバにアクセスすると、 問題なくレスポンスをうけとりIDがブラウザに表示されることも確認しました。 何が原因でこういうことが起こるのでしょうか。 教えて頂けると大変助かります。 OS:Windwos 7 32bit ブラウザ:Explore8,Chrome サーバからのレスポンス(telnetでアクセスした際に取得したもの) HTTP/1.1 200 OK Content-Type: text/plain Server: Microsoft-IIS/6.0 X-Powered-By: ASP.NET Date: Mon, 20 Jan 2014 11:12:37 GMT Connection: close SYJ0P48