我想知道是否有办法发送带有http请求的引用虽然它在浏览器中被转换(例如使用javascript)?
没有发送引荐来源时我遇到的问题:
我正在尝试最小化攻击的变化,所以无论何时加载页面我都在更改sessionkey ... sessionid保持不变,但是键更改...所以基本上当页面有一些脚本或样式文件时需要从服务器发送的参考(r)er是需要正确显示的页面,或者是需要脚本的部分.当我更改到服务器上的另一个页面时,引用(r)更改.好的,解释一下,这是一个模式(如果不可理解,请说出来):
start: GET test.html --> referrer := null
`--> GET style.css --> referrer := test.html
---- CLICK ON LINK TO GO TO: 'form.html'
GET form.html --> referrer := test.html
`--> GET sendRequest.js --> referrer := form.html
`--> GET style.css --> referrer := form.html
---- CALL A PAGE DIRECTLY OVER ADDRESS BAR: http://somedomain.com/someotherpage.html
GET someotherpage.html --> referrer := null
Run Code Online (Sandbox Code Playgroud)
因此,要使sessionkey的更改工作:我只在refer(r)er为null或我正在切换到另一个页面时更改sessionkey ...但是当"Send referer"关闭时,这将无效你可以在使用Opera时做... b/c那么refer(r)er总是为null,当客户端从test.html-page b/c发送style.css的请求时我遇到麻烦然后新的sessionkey将被设置,但是对style.css的请求带有旧的sessionkey ...所以最简单的方法(我想......也许我错过了一些东西)将使用refer(r)er. ..
它是否像$ ENV {'HTTP_REFERER'}一样简单?还是还有其他我需要做的事情?
示例:我的网站:sample.php
使用iFrame呼叫网站:somesite.com
我想在加载时使用sample.php,以便能够使用"somesite.com"作为变量输入.
我的抓取工具的简单代码是:
#!/usr/bin/perl -w
use WWW::Scripter;
$w = new WWW::Scripter('agent' => 'myAgent');
$w->use_plugin('JavaScript');
### need to set a referrer header here ###
$w->get('http://website-url');
print $w->content, "\n";
Run Code Online (Sandbox Code Playgroud)
我需要在执行之前设置一个引用标头get.或者我还需要设置其他标题,例如cookie等.我在文档中没有看到如何做到这一点.必须有一种方法,如何设置标题.怎么样?
我正在使用if语句和PHP的$ _SERVER ['HTTP_REFERER']来检查用户是否来自主页并执行某些功能,如果他们这样做:
if($_SERVER['HTTP_REFERER'] == htttp://www.example.com {
//some code
}
Run Code Online (Sandbox Code Playgroud)
问题是主页有时会在URL中传递GET变量,PHP的$ _SERVER ['HTTP_REFERER']方法会将带有GET变量的URL视为不同的URL,因此除非用户来自,否则不会触发if函数主页没有传递GET变量.
我想在有人来自主页时触发if语句,无论是否传递了GET变量,任何帮助都将不胜感激!
长话短说
为什么我应该或不应该在我的 cURL 函数中设置CURLOPT_AUTOREFERER => true(遵循有限数量的重定向)?
长版
我有一个非常标准的 cURL 函数,它返回给定 URL 的标头,最多可进行10 个重定向...
const SINGLETIMEOUT = 8; // Seconds (is this too long?)
public static function getHeaders($url, $userAgent) {
// Initialize cURL object
$curl = curl_init($url);
// Set options
curl_setopt_array($curl, array(
CURLOPT_USERAGENT => $userAgent,
CURLOPT_HEADER => true,
CURLOPT_NOBODY => true,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_MAXREDIRS => 10,
CURLOPT_AUTOREFERER => true,
CURLOPT_TIMEOUT => SINGLETIMEOUT, // 5 seconds (safety!)
CURLOPT_CONNECTTIMEOUT => SINGLETIMEOUT …Run Code Online (Sandbox Code Playgroud)