0

ユーザーがページのコンテンツを検索できる検索機能を Web サイトに追加しました。

コード:

    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

「検索過負荷」のようなものはありません。
任意のアプリケーション部分に対して、多数の同時リクエストによって実行される「サービス拒否」と呼ばれる一般的なタイプの攻撃があります。したがって、この種の攻撃はmysqlやPDOとは何の関係もないため、一般的にDOS保護について読む必要があります。

また、役立つアドバイスが1つあります
。外観の問題を解決してください。
言い換えれば、架空の問題ではなく、実際の問題のみを解決します。
このような「検索の過負荷」の問題がない限り、対策も講じないでください。

于 2013-02-05T13:05:20.187 に答える
0

多くの方法があります。おそらく、特定の ip アドレスの時間間隔ごとの検索を制限し、テーブルを作成して検索 ip と検索時間を保存し、必要な数の検索を許可します..シンプルで効率的..

于 2013-02-05T12:58:34.377 に答える