PHP implementiert die Baidu Wenxin Yiyan-Schnittstellenverkehrsüberwachung und eine Lösung zur Verhinderung böswilliger Anfragen

PHPz
Freigeben: 2023-08-26 15:52:01
Original
906 Leute haben es durchsucht

PHP implementiert die Baidu Wenxin Yiyan-Schnittstellenverkehrsüberwachung und eine Lösung zur Verhinderung böswilliger Anfragen

PHP implementiert die Verkehrsüberwachungs- und böswillige Anforderungspräventionslösung der Baidu Wenxin Yiyan-Schnittstelle.

Die Yiyan-Schnittstelle ist eine sehr beliebte API, die von Baidu bereitgestellt wird. Durch Aufrufen dieser Schnittstelle können Sie einen zufälligen Wenxin Yiyan erhalten. In tatsächlichen Anwendungen kann es jedoch aufgrund der großen Anzahl von Zugriffen auf die Schnittstelle zu Problemen mit übermäßigem Datenverkehr oder sogar böswilligen Anforderungen kommen. In diesem Artikel erfahren Sie, wie Sie mit PHP die Verkehrsüberwachung implementieren und böswillige Anfragen für diese Schnittstelle verhindern.

Zuerst müssen wir ein PHP-Skript auf unserem eigenen Server als Middleware bereitstellen, um Client-Anfragen zu empfangen und die Schnittstelle von Baidu Wenxinyiyan aufzurufen. Das Folgende ist ein einfacher Beispielcode:

<?php
function getOneWord() {
    $url = 'https://api.gushi.ci/all.json';
    $data = file_get_contents($url);
    $result = json_decode($data, true);

    return $result['content'];
}

// 检查IP是否被限制访问(60秒最多访问100次)
function checkIP() {
    $ip = $_SERVER['REMOTE_ADDR'];
    $file = './ip.txt';
    $time = time();

    $lines = file($file);

    // 删除过期的记录
    foreach ($lines as $key => $line) {
        $record = explode(',', $line);

        if ($time - $record[0] > 60) {
            unset($lines[$key]);
        }
    }

    file_put_contents($file, implode($lines));

    // 统计当前IP的请求次数
    $count = 0;
    foreach ($lines as $line) {
        $record = explode(',', $line);

        if ($record[1] == $ip) {
            $count++;
        }
    }

    // 超过限制次数
    if ($count >= 100) {
        return false;
    }

    // 添加新的请求记录
    file_put_contents($file, $time . ',' . $ip . PHP_EOL, FILE_APPEND);

    return true;
}

// 允许跨域访问
header('Access-Control-Allow-Origin: *');

// 检查IP是否被限制访问
if (!checkIP()) {
    die('请求过于频繁,请稍后再试!');
}

// 调用百度文心一言接口
$oneWord = getOneWord();

// 返回结果
echo $oneWord;
?>
Nach dem Login kopieren

Im obigen Code haben wir zuerst die Funktion getOneWord() geschrieben, die verwendet wird, um die Baidu Wenxin Yiyan-Schnittstelle aufzurufen und einen Wenxin Yiyan-Satz zurückzugeben. Anschließend wird mit der Funktion checkIP() überprüft, ob die IP-Adresse des Clients die Zugriffshäufigkeitsgrenze überschreitet. Hier zeichnen wir die IP-Adresse in einer Textdatei auf und löschen regelmäßig abgelaufene Datensätze. Wenn die Anzahl der Anfragen für eine bestimmte IP-Adresse das Limit überschreitet (bis zu 100 Besuche innerhalb von 60 Sekunden), wird eine Fehlermeldung zurückgegeben, andernfalls wird ein neuer Anfragedatensatz hinzugefügt. getOneWord()函数,用于调用百度文心一言接口并返回一句文心一言。然后,checkIP()函数用来检查客户端的IP地址是否超过了访问频率限制。这里我们将IP地址记录在一个文本文件中,并定期清除过期的记录。如果某个IP地址的请求次数超过了限制(60秒内最多访问100次),则返回错误信息,否则添加新的请求记录。

接下来,我们在PHP脚本的开头添加了header('Access-Control-Allow-Origin: *')

Als nächstes haben wir header('Access-Control-Allow-Origin: *') am Anfang des PHP-Skripts hinzugefügt. Dies dient dazu, den domänenübergreifenden Zugriff zu ermöglichen und dem Client den Aufruf zu erleichtern Schnittstelle. Abschließend geben wir den entsprechenden Inhalt basierend auf dem Anrufergebnis zurück.

Um die Wirkung dieser Lösung zu testen, können Sie den obigen Code als PHP-Datei speichern und dann im Browser auf diese Datei zugreifen, um einen Textsatz zu erhalten. Um gleichzeitige Anfragen zu simulieren, können Sie über mehrere Browserfenster oder Tools gleichzeitig auf diese Schnittstelle zugreifen und beobachten, ob Sie eine Fehlermeldung erhalten, die darauf hinweist, dass Anfragen zu häufig sind.

Durch die oben genannte Lösung haben wir die Funktionen zur Verkehrsüberwachung und Verhinderung böswilliger Anfragen der Baidu Wenxin Yiyan-Schnittstelle implementiert. Die Zugriffshäufigkeitsgrenzen können je nach Bedarf angepasst werden, um dem tatsächlichen Anforderungsvolumen gerecht zu werden. Gleichzeitig haben wir auch Unterstützung für den domänenübergreifenden Zugriff auf diese Schnittstelle hinzugefügt, um Client-Aufrufe zu erleichtern. Die Vorteile dieser Methode bestehen darin, dass sie einfach zu verwenden und kostengünstig ist und die Schnittstelle wirksam vor Missbrauch schützen kann.

Ich hoffe, dass die oben genannten Inhalte für Sie hilfreich sind und wünsche Ihnen viel Glück bei Ihrem Projekt! 🎜

Das obige ist der detaillierte Inhalt vonPHP implementiert die Baidu Wenxin Yiyan-Schnittstellenverkehrsüberwachung und eine Lösung zur Verhinderung böswilliger Anfragen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!