-1

URL を取得し、その URL (TargetURL と呼ばれる) を .NET 経由でダウンロードする PHP スクリプト (MyPHPScript) を作成していますfile_get_contents。次に、スクリプトはすべてのアンカー<a>とすべてのフォーム アクション ( action="") を書き換えて、MyPHPScript を指すようにします。

MyPHPScript は、次のようなフォームに遭遇することがあります。

<form name="MYFORM" method="GET" action="http://www.TargetURL.com/index.php">
    <input type="input" name="Username"/>

これを次のように書き換えます。

<form name="MYFORM" method="GET" action="MyPHPScript.php">
    <input type="hidden" name="OriginalAction" value="http://www.TargetURL.com/index.php"/>
    <input type="input" name="Username"/>
</form>

すべての処理が完了すると、MyPHPScript は変更された TargetURL のコードを出力します。次にこのフォームを送信すると、MyPHPScript は のGET値をチェックし、OriginalActionその URL をダウンロードして、関連するすべてのGET値を渡します。

これは正常に機能しますが、TargetURL の特定のフォームは次のとおりです。

<form name="MYFORM" method="GET" action="http://www.TargetURL.com/search/">
    <input type="input" name="SearchTerm"/>

MyPHPScript はこれを次のように書き換えます。

<form name="MYFORM" method="GET" action="MyPHPScript.php">
    <input type="hidden" name="OriginalAction" value="http://www.TargetURL.com/search/"/>
    <input type="input" name="SearchTerm"/>

問題は、このフォームを送信すると、MYPHPScript が URL をダウンロードしようとすることです。

http://www.TargetURL.com/search/?SearchTerm=XYZ

ただし、これは機能していません。私は TargetURL.com を管理していないので、その理由を推測することしかできませんが、GET が適切に渡されていないことを示す検索結果がないというエラー メッセージが表示されます。では、ファイル名が存在しない場合、または上記の URI が有効であり、TargetURL.com が何か特別なことをしている可能性がある場合に、URI に GET 値を渡すにはどうすればよいでしょうか?

4

1 に答える 1

0

このように GET 値を渡すことは完全に有効ですが、サイトはこの種の書き換えを阻止するために、ちょっとした JavaScript を使って巧妙なことをしているようです。なんて手がかりがない。ご不便をおかけして申し訳ございません。

于 2013-03-08T05:55:29.567 に答える