gpt4 book ai didi

mysql "LIKE"或 EXACT 与过滤字符串

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

我们的网页上有上传功能,并且我们有一个过滤数据库,您可以添加不允许用户上传的内容。

在上传方面,我们有一个 mysql 查询,如果名称持续存在于过滤器数据库中,该查询将会阻止上传。

我们现在的查询是:

$DB->query("SELECT id FROM filter WHERE filter LIKE '%". $Properties['Title'] ."%'");

if($DB->record_count() != 0) {
$Err = '[b]Cannot upload this![/b]';
include(SERVER_ROOT . '/sections/upload/upload.php');
die();
}

现在的问题是我们是否阻止:My.Dog.In.The.Ocean.My.HomeVid.mp4然后它还会阻止:My.Dog.In.The.Garden.Avi

如果名称中明确存在过滤字符串,我们只需要阻止查询。

有什么想法可以改变什么才能正确阻止吗?

*注意:$DB->record_count = 覆盖 mysqli_num_rows 的函数

因此,我们将 $Properties 设为上传元素的属性,从而将 Title 设为字符串标题

最佳答案

LIKE 不应与您所说的方式相符:

mysql> select 'My.Dog.In.The.Ocean.My.HomeVid.mp4' like '%My.Dog.In.The.Garden.Avi%';
+------------------------------------------------------------------------+
| 'My.Dog.In.The.Ocean.My.HomeVid.mp4' like '%My.Dog.In.The.Garden.Avi%' |
+------------------------------------------------------------------------+
| 0 |
+------------------------------------------------------------------------+
1 row in set (0.04 sec)

所以您可能还遇到其他问题,例如 $Properties['Title'] 未设置为您认为的内容。除非您在其他地方清理文件标题,否则这里也存在 SQL 注入(inject)漏洞。有人上传名为 ' 的文件; DROP TABLE 过滤器# 会破坏你的数据库。

关于mysql "LIKE"或 EXACT 与过滤字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18291696/

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