PERL -

2016-12-12 5 views
0

ページをトークン値を含む送信形式は、次の入力フォームPERL -

<form name="action" method="post" action="index.php"> 
    <input type="text" name="username" /> 
    <input type="password" name="password" /> 
    <input type="hidden" name="token" value="40f41b52643f1fdc" /> 
    </form> 

入力タイプ=「隠し」フィールドは、サーバによって移入されました。私はPerlを使ってこのフォームを提出したいと思います。これまでのところ私は、次のPerlコード

use LWP; 
use strict; 
use warnings; 
use LWP::UserAgent; 
use HTTP::Cookies; 

my $ua = LWP::UserAgent->new; 

my @req=('http://somesite.com/index.php', [action => 1, token => ????, username => "john", password => "123456"]); 
my $response = $ua->post(@req); 

print $response1->as_string(); 

を持っていますが、どのように私は<input type="hidden" name="token" value="40f41b52643f1fdc" />から値を取得することができますし、それを提出しますか?

+0

[perlは略語ではありません](http://perldoc.perl.org/perlfaq1.html#What's-the-difference-between-%22perl%22-and-%22Perl%22%3f) – Quentin

答えて

0
  1. それにフォームのページを取得するためのリクエストを行い
  2. HTMLのようなツールを使用して応答でHTMLを解析:: TreeBuilder
  3. がコピートークン
  4. と入力のためにそれを検索それを文字列に変換する
  5. あなたのコードを使用してください。

注意:トークンはおそらくCSRF攻撃から保護されているため、元の応答からクッキーを保存し、後続の応答で使用する必要があります。

また、WWW :: MechanizeやSeleniumのようなツールを使用し、要求を手動で作成する代わりに、送信ボタンをクリックしてフォームを送信することもできます。