gpt4 book ai didi

php - 如何使用多字段搜索和防止sql注入(inject)

转载 作者:行者123 更新时间:2023-11-30 23:03:42 24 4
gpt4 key购买 nike

我正在构建一个带有多个搜索参数的 HTML 表单。在提交时,我使用发送的值来构建查询。代码看起来类似于:

....
$keyword1 = mysqli_real_escape_string($_POST['keyword1']);
$keyword2 = mysqli_real_escape_string($_POST['keyword2']);

$sql = "SELECT * FROM myTable
WHERE field1 LIKE '%$keyword1%'
OR field2 LIKE '%$keyword2%'..."

$result = mysql_query($query);
while...etc

这感觉像是一个安全问题,因为 LIKE '%%' 条件。我在这个网站上搜索了答案,解决方案似乎是准备好的陈述。但是,我发现的所有示例都在语句中使用等号 (=)。如果我在查询中使用 LIKE,准备好的语句对防止 SQL 注入(inject)没有帮助?对吧?

欢迎任何代码建议。

最佳答案

LIKE 比较的唯一额外安全问题是通配符本身不会被转义。

如果担心用户在输入中包含额外通配符的可能性,您可以使用 str_replace 删除它们:

$keyword1 = str_replace('%','',$keyword1);

无论您是使用 mysqli 准备好的语句还是直接使用 mysqli_real_escape_string,在这里都不会有什么不同。

关于php - 如何使用多字段搜索和防止sql注入(inject),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22780803/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com