Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/273.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/58.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php MySQL慢速查询日志在我的MySQL语句中添加了一些内容,这些内容不是';不来自我的代码,需要帮助弄清楚这一切意味着什么_Php_Mysql_Performance - Fatal编程技术网

Php MySQL慢速查询日志在我的MySQL语句中添加了一些内容,这些内容不是';不来自我的代码,需要帮助弄清楚这一切意味着什么

Php MySQL慢速查询日志在我的MySQL语句中添加了一些内容,这些内容不是';不来自我的代码,需要帮助弄清楚这一切意味着什么,php,mysql,performance,Php,Mysql,Performance,所以我的主机联系了我,说我的MySQL调用占用了MySQL服务器上太多的时间,他们给我发送了一个他们称之为“MySQL慢速查询日志”的东西来查看,以确定要修复哪些。最常被吃掉的罪魁祸首是: SELECT parentmessages.* FROM userinfo, parentmessages WHERE parentmessages.parentid='11601' AND SLEEP(3) oRDeR BY 6 #' AND parentmessages.active='2' AND (u

所以我的主机联系了我,说我的MySQL调用占用了MySQL服务器上太多的时间,他们给我发送了一个他们称之为“MySQL慢速查询日志”的东西来查看,以确定要修复哪些。最常被吃掉的罪魁祸首是:

SELECT parentmessages.* FROM userinfo, parentmessages WHERE parentmessages.parentid='11601' AND SLEEP(3) oRDeR BY 6 #' AND parentmessages.active='2' AND (userinfo.userid='') AND (parentmessages.userid = userinfo.userid)
然而,我不知道下面的部分是什么。它根本不在我的代码中,好像是服务器添加的还是什么?或者只是在日志中添加了什么

AND SLEEP(3) oRDeR BY 6 #' 
另一个主犯的查询与上面的查询基本相同,但只添加了以下内容:

AND SLEEP(3)
当我在编写时运行这些MySQL语句时(没有上面添加的块),它们运行得非常快:(查询需要0.0018秒)。当我使用添加的块运行它们时,它们需要几分钟,然后超时。所以我的意思是,如果他们在运行时添加了额外的东西,那肯定会是个问题。只是很困惑这些额外的东西是从哪里来的,因为它不是来自我的代码


这是一个没有更新PHP MySQLi函数的旧站点(我知道,我知道,几年来没有太多的时间来处理它),所以我可能会怀疑SQL注入之类的问题,但这些查询都不是用用户提供的数据创建的。

不幸的是,您的站点受到了攻击

攻击者可能会在您的表单上输入这些额外/奇怪的字符和命令

查找负责该查询的页面和代码,并采用一种防止SQL注入的技术,例如防止在表单中输入无效字符


如果您使用的是PHP和MySQLi,则会有所帮助。

否,如果您使用的是MySQLi,则准备好的语句将有所帮助!调整一下,我给你+1@米肯32呃。。。。你是说mysqli\u real\u escape\u string()不会有帮助吗?我的朋友,剥猫皮的方法不止一种……SQL注入的方法也不止一种:嗯,如果是这样的话,我还有很多工作要做,ug。问题:在不使用预先准备好的语句/等的情况下迁移到MySQLi是否会增加任何安全好处?或者我需要用准备好的声明来安排一切?我喜欢。。。在这个网站上有100多个查询,现在这已经不是我的优先事项了,所以我不认为我会回去把它们都作为准备好的语句来解决。@andrewwhat字符串转义总比没有好,它可以保护您免受多种类型的注入。我只是想让这个用户意识到它不是万能药,不应该期望在所有情况下都能保护你。请原谅我的“捶胸顿足!”)