読者です 読者をやめる 読者になる 読者になる

ajaxのアクセスしか許可していないサイトへPHPでアクセスする方法

ajax通信する際、ブラウザが自動でヘッダーに下記を付与するため、
一般的には下記がヘッダーに含まれているかどうかでajaxによる通信かどうかを判断する。

X-Requested-With:XMLHttpRequest


なのでphpで上記のヘッダーを偽装してしまえばajax通信でなくともアクセス可能となる。

$context = stream_context_create(array(
    "http" => array(
        'method'  => 'POST',
        'header'  => implode("\r\n", array(
             'X-Requested-With:XMLHttpRequest',
        )),
        'content' => http_bulid_query(array(
             'foo'  => 'bar',
             'hoge' => 'fuga',
        )),
    )
));
$res = file_get_contents('http://sample.jp', false, $context);