Php速率限制不适用于卷曲请求

时间:2018-05-30 18:15:19

标签: php http curl

我使用此功能来限制在互联网上冲浪的http请求:

  session_start();
  if (isset($_SESSION['LAST_CALL'])) {
    $last = strtotime($_SESSION['LAST_CALL']);
    $curr = strtotime(date("Y-m-d h:i:s"));
    $sec =  abs($last - $curr);
    if ($sec <= 2) {
      die('Rate Limit Exceeded');  // rate limit   
    }
  }
  $_SESSION['LAST_CALL'] = date("Y-m-d h:i:s");

适用于浏览器

with browser

但如果我尝试使用curl的请求:

curl http://localhost/project/p.php

curl 没有任何事情发生

我如何更新这个以使速率限制对卷曲有效?

我检查客户是否接受cookie,如果没有退出:

setcookie('test', 1, time()+3600);
if(count($_COOKIE) == 0){
     die ("Cookie Not Enabled");
}

使用cookie进行curl请求保存cookie文件,然后我用cookie发出另一个请求:

curl http://localhost/project/p.php -c cookie-jar.txt

curl http://localhost/project/register.php --cookie "PHPSESSID=g90tqc0hvp6sodods9jisss912"

1 个答案:

答案 0 :(得分:0)

<强>解

我检查客户是否接受cookie,如果没有退出:

Sub Test()
    RemoveServiceAccounts Selection
End Sub

使用cookie进行curl请求保存cookie文件,然后我用cookie发出另一个请求:

setcookie('test', 1, time()+3600);
if(count($_COOKIE) == 0){
     die ("Cookie Not Enabled");
}