Php 如何使我的搜索引擎安全?

Php 如何使我的搜索引擎安全?,php,jquery,mysql,ajax,sql-injection,Php,Jquery,Mysql,Ajax,Sql Injection,我一直在为我的网站做一个搜索引擎,刚刚完成。我正在使用一个ajax请求来搜索数据库,我想知道如何使它不受任何注射的影响 Search.ajax.php <?php $db = new mysqli('localhost', 'root', 'root', 'social'); $search = $_POST['search']; $query = mysqli_query($db, 'SELECT * FROM users WHERE username LIKE "'.$se

我一直在为我的网站做一个搜索引擎,刚刚完成。我正在使用一个ajax请求来搜索数据库,我想知道如何使它不受任何注射的影响

Search.ajax.php

    <?php 
$db = new mysqli('localhost', 'root', 'root', 'social');
$search = $_POST['search'];

$query = mysqli_query($db, 'SELECT * FROM users WHERE username LIKE "'.$search.'"');

if (mysqli_num_rows($query) < 1) {
    echo "<b>No results found for <i>".$search."</i></b>";
}else{
    while ($r = mysqli_fetch_assoc($query)) {
        $user = $r['username'];
        echo '<div>Go to <a href="profile.php?user='.$user.'">'.$user.'</p></div>';
    }
}


 ?>

首先,您需要https来确保使用防火墙和其他必需的安全工具保护用户免受黑客攻击

其次,您需要使用htaccess来更改扩展,比如show user.html而不是.php

第三,加密值而不是纯文本


还有很多问题需要处理,但太复杂和广泛了。

对于任何试图提供帮助的人,如果我没有解释好,我很抱歉。如果您需要更多信息,请询问。谢谢。2个词:准备好的陈述如果我使用准备好的陈述,我将如何显示数据?谢谢,我现在就开始解决这些问题。你不必做这些。此答案中没有任何内容阻止sql注入。@Hanky웃在与db值进行比较之前对post值进行Panky加密是防止sql注入的一种非常安全的方法。这清楚地表明你在这个领域没有知识。不,不是。如何在javascript中加密值?有什么例子吗?sql注入与加密无关。即使在加密之后,他们的代码仍然很容易被注入。我可能什么都不知道,但这篇文章确实知道:你可能想看看。而且,也没有必要冒犯他人或进行人身攻击。我只是添加了一条评论,以启发未来的读者,让他们知道我认为什么是正确的方法。也许如果你访问那个帖子,它也会对你有所帮助。否决票不是我的either@Hanky웃Panky加密总是在服务器端而不是客户端完成的,即用php而不是js。无论如何,一旦加密了post值,比如说,
md5($\u post[“search”])
就不可能进行sql注入。例如,如果用户输入
1”)或1=1(“1
作为查询,它将在使用数据库执行之前进行加密。它将变成类似“asjhas6agsdsdsdsdudsd234ds”的东西,这是一种非常安全的检查方式。