1064:您的 SQL 语法有错误

问题描述 投票:0回答:1

1064:您的 SQL 语法有错误

这个错误是sql可注入的吗,因为我个人担心我不知道如何修复它,如果它是可注入的,我需要快速修复它?

1064:您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,了解在第 1 行 [ SQL ] 处使用靠近 '%' 或 CategoryMark (如 '%'%') 或 packageName (如 '%'%')' 的正确语法: select count(id)从 microvirt_app_i18n 进行计数,其中广告商 = 'google' 且 color0 且国家/地区代码 = 'US' 且(名称如 '%'%' 或类别标记如 '%'%' 或 packageName 类似 '%'%') 错误位置

文件:/var/www/html/home/ThinkPHP/Library/Think/Db/Driver.class.php 线:350 追踪

#0 /var/www/html/home/ThinkPHP/Library/Think/Db/Driver.class.php(350): E('1064:You have a...')
#1 /var/www/html/home/ThinkPHP/Library/Think/Db/Driver.class.php(180): Think\Db\Driver->error()
#2 /var/www/html/home/ThinkPHP/Library/Think/Model.class.php(1382): Think\Db\Driver->query('select count(id...')
#3 /var/www/html/home/Application/Home/Controller/SearchController.class.php(31): Think\Model->query('select count(id...')
#4 [internal function]: Home\Controller\SearchController->index(''', 'en')
#5 /var/www/html/home/ThinkPHP/Library/Think/App.class.php(171): ReflectionMethod->invokeArgs(Object(Home\Controller\SearchController), Array)
#6 /var/www/html/home/ThinkPHP/Library/Think/App.class.php(110): Think\App::invokeAction(Object(Home\Controller\SearchController), 'index')
#7 /var/www/html/home/ThinkPHP/Library/Think/App.class.php(204): Think\App::exec()
#8 /var/www/html/home/ThinkPHP/Library/Think/Think.class.php(120): Think\App::run()
#9 /var/www/html/home/ThinkPHP/ThinkPHP.php(97): Think\Think::start()
#10 /var/www/html/home/index.php(33): require('/var/www/html/h...')
mysql sql mysql-error-1064 thinkphp
1个回答
2
投票

错误告诉您去哪里查看...

  • 靠近“
    %' or categoryMark like '%'%' or packageName like '%'%')

字符串

'%'%'
中间有一个
'
,你没有逃脱。

  • 尝试
    '%''%'
    代替

(其中

''
被视为文字字符,而不是字符串终止符).


至于是否

injectable
,任何时候你将字符串替换为查询时,它都是可注入的。

请使用

parameterisation
来代替。

© www.soinside.com 2019 - 2024. All rights reserved.