0

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

代码:

    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 地址并从那里限制它,但如果可能的话,我想避免这条路线。

4

2 回答 2

0

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

于 2013-02-05T12:58:34.377 回答
0

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

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

于 2013-02-05T13:05:20.187 回答