Php Gurus,
我向迷你代理添加了一个url记录器,这样无论我的免费用户浏览了什么,都会在他们的帐户用户名下登录我的数据库。 迷你代理的代码太长,不适合这篇文章,所以你可以在这里查看: https://github.com/joshdick/miniProxy/blob/master/miniProxy.php
使用迷你代理,我现在浏览的任何内容都会记录到我的数据库中。 Tbl:browsing_history。 专栏:ids,time&日期,用户名,网址。
现在,当我查看网址时,它会被记录。
// Dump $url into db
$stmt = mysqli_prepare($conn, "INSERT INTO
browsing_histories(ids,usernames,urls) VALUES (?, ?, ?)");
mysqli_stmt_bind_param($stmt, 'iss', $id, $user, $url);
mysqli_stmt_execute($stmt);
if($stmt)
{
echo "Logged $url to db a success!";
}
else
{
echo "Logging $url to db failed!";
}
Q1。 为什么Web代理php脚本只提取“http”但不提取“https”页面?要更改哪条线以及要解决此问题? 我收到错误: 错误:服务器管理员不允许请求的网址。
如果您检查代码的链接,那么您将看到脚本代码的第308行提到了错误。
Q2。 我想伪造REFERRER所以网站(通过代理查看)看到引荐来源:http://www.example.com/referrer.html而不是实际的引荐来源。 我在哪一行添加了哪些代码来实现这一目标?
答案 0 :(得分:0)
A1:$whitelistPatterns
你有什么价值? preg_match
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
。{/ p>
如果您不想限制流量,请删除此安全条件。
这也可能是由于您在服务器上没有有效的根证书或时间配置不正确。您可以在服务器上修复它,或忽略它:
curl_setopt($ch, CURLOPT_REFERER, 'http://www.example.com/1');
A2:在There is url checking行之间插入:
curl_setopt($ch, CURLOPT_HTTPHEADER, $curlRequestHeaders);
条件/块中的任何行都不会好。没关系。虽然referer
设置CURLOPT_REFERER
,但如果标题中存在referer
。所以在此行之前应该是默认的引用者和之后:重写。 (我不知道CURLOPT_HTTPHEADER
的{{1}}优先级是query
中的sort