【问题标题】:MySQL Search Limit using PHP使用 PHP 的 MySQL 搜索限制
【发布时间】:2013-01-20 09:53:26
【问题描述】:

我在我的网站上添加了一个搜索功能,用户可以在其中搜索我的网页内容。

代码:

    try
        {
            $pdo = new PDO("mysql:host=hostname;dbname=searchdb", "searchuser", "searchpw", 
array(PDO::ATTR_PERSISTENT => true));
        }
        catch (PDOException $ex) {
            echo $ex->getMessage() . "<br>";
            exit('Connection Closed');
        }
        $pdo->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
        $stmt = $pdo->prepare($query);
        $stmt->setFetchMode(PDO::FETCH_ASSOC);
        $stmt->execute();

现在我想知道如何保护它免受搜索过载的影响。我相信任何人都可以创建一个简单的机器人程序,它可以通过太多的搜索查询浪费我的带宽/cpu。

我的意思是我可以跟踪 IP 地址并从那里限制它,但如果可能的话,我想避免这条路线。

【问题讨论】:

标签: php mysql apache web pdo


【解决方案1】:

有很多方法,也许可以尝试限制特定ip地址的每个时间间隔的搜索,创建一个表并存储搜索ips和搜索时间,并允许尽可能多的搜索..简单高效..

【讨论】:

    【解决方案2】:

    没有像“搜索过载”这样的东西。
    有一种称为“拒绝服务”的一般攻击类型,由多个同时请求对任意应用程序部分执行。所以,你必须阅读一般的 DOS 保护,因为这种攻击与 mysql 或 PDO 无关。

    还有一个有用的建议:
    解决他们的外观问题。
    换句话说,只解决实际问题,而不是想象的问题。
    只要您没有这样的“搜索过载”问题 - 也不要采取对策。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-11-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-08-05
      • 1970-01-01
      相关资源
      最近更新 更多