php偽造來路是指通過代碼模擬瀏覽器的標準HTTP頭中的來源(referrer)信息,并將其加入發送給服務器的HTTP請求中,使服務器認為該請求是從指定來源發起的。
通常情況下,瀏覽器中發送的HTTP請求中都會攜帶該請求的來源信息,服務器可以通過來源信息來判斷請求是從哪個網址(或者頁面)發起的。如果請求來源不在合理范圍之內,那么服務器可能會進行攔截或者直接忽略該請求。
但是,在一些情況下,我們希望通過代碼來模擬請求,并且希望服務器認為這個請求來自一個指定的來源。這種情況下,我們就需要使用php來進行偽造請求來源的操作。
下面是一個使用php進行偽造請求來源的示例代碼:
<?php $url = 'http://www.example.com/hello.php'; $refer = 'http://www.google.com/search?q=hello'; $useragent = 'Mozilla/5.0 (Windows NT 6.3; WOW64)'; $header = array(); $header[] = 'Referer: '.$refer; $header[] = 'User-Agent: '.$useragent; $options = array( CURLOPT_URL => $url, CURLOPT_RETURNTRANSFER => true, CURLOPT_HEADER => true, CURLOPT_FOLLOWLOCATION => true, CURLOPT_ENCODING => '', CURLOPT_AUTOREFERER => true, CURLOPT_CONNECTTIMEOUT => 120, CURLOPT_TIMEOUT => 120, CURLOPT_MAXREDIRS => 10, CURLOPT_HTTPHEADER => $header ); $ch = curl_init(); curl_setopt_array( $ch, $options ); $content = curl_exec( $ch ); $header_size = curl_getinfo( $ch, CURLINFO_HEADER_SIZE ); $header = substr( $content, 0, $header_size ); $body = substr( $content, $header_size ); curl_close( $ch ); echo $body; ?>
上述代碼使用curl庫來進行HTTP請求,并使用自定義的變量來模擬HTTP頭中的來源信息。我們可以通過修改$url和$refer兩個變量來指定請求的目標網址和請求來源。當前示例中請求的目標網址是http://www.example.com/hello.php,請求來源是http://www.google.com/search?q=hello。
我們可以通過修改$refer的變量值,來修改請求的來源。比如,我們可以設置$refer='http://www.bing.com/search?q=hello',則服務器將會認為該請求來自于Bing搜索引擎,而非Google搜索引擎。
需要注意的是,偽造HTTP頭信息可能會被視為不合法的操作,因此請謹慎使用。
上一篇php 使用ftp