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

标签 php jquery mysql ajax sql-injection

<分区>

我一直在为我的网站制作一个搜索引擎,刚刚完成我正在使用 ajax 请求来搜索数据库,想知道我如何才能使它免受任何注入(inject)的侵害?

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>';
    }
}


 ?>

我正在数据库中搜索具有他们在搜索框中输入的用户名的用户。我需要帮助才能做到这一点,这样就没有人可以搜索警报(测试);如果他们搜索这个,它会显示一个警告框,这里就是一个例子。 here is a photo of when someone puts in script tags

最佳答案

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

其次,您需要使用 htaccess 来更改扩展名,比如显示用户 .html 而不是 .php

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

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

关于php - 如何使我的搜索引擎安全?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33974475/

相关文章:

php - 非法混合排序规则 -- 简单的 PHP 登录

php - 从回显的 php 传递数据

javascript - JS 高度 100%

jquery - 从 HTML 按钮自动化命令行

带有 Bootstrap 的 C# ASP.NET

mysql - Openshift,超出磁盘配额

php ob_flush : How do I make the browser window/page scroll down with the output?

PHP:使用正则表达式从字符串中删除多余的空格

php - 如何将 PHP session 数据保存到数据库而不是文件系统中?

java - 检查是否可以插入 MySQL 数据库