Php 避免SQL注入在几秒钟内插入数千条记录

Php 避免SQL注入在几秒钟内插入数千条记录,php,mysql,Php,Mysql,你好,我受到严重攻击,有人在我的数据库中插入了数千条记录 在我使用的下面签出我的代码 <?php include_once 'files/config.php'; $q = trim(!empty($_GET['q'])) ? $_GET['q'] : null; $key = $conn->real_escape_string(trim($q)); $result = mysqli_query($conn, "SELECT id,title,size,category,url FR

你好,我受到严重攻击,有人在我的数据库中插入了数千条记录

在我使用的下面签出我的代码

<?php
include_once 'files/config.php';
$q = trim(!empty($_GET['q'])) ? $_GET['q'] : null;
$key = $conn->real_escape_string(trim($q));
$result = mysqli_query($conn, "SELECT id,title,size,category,url FROM data WHERE MATCH (title) AGAINST ('$key') ORDER BY MATCH (title) AGAINST ('$key') DESC LIMIT 200");
?>

// some divs data goes here

<?php
mysqli_query($conn, "INSERT INTO tags (tag) VALUES('{$key}') ON DUPLICATE KEY UPDATE count = count + 1");   
while($row = mysqli_fetch_array($result))
{
$title = $row['title'];
$size = $row['size'];
$title = strip_tags($title);
?>


如何避免这种攻击在一分钟内将数千条假记录插入我的数据库?

做一些研究,尝试限制速率或记录IPs@Valkyrie如何找到攻击者IP?我使用的是Linux Debian Wheezy 7.9。这个操作是否适用于类似的操作?或者在调用INSERT操作之前是否需要登录?不需要从数据库直接搜索输入和输出不需要登录不需要reCAPTCHA。