Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/364.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
Java MySQL准备的语句具有空字符串_Java_Mysql_Testing - Fatal编程技术网

Java MySQL准备的语句具有空字符串

Java MySQL准备的语句具有空字符串,java,mysql,testing,Java,Mysql,Testing,我正在对别人编写的应用程序进行软件测试。当他们检查数据库中是否有用户的用户名和密码时,他们只需将GUI中传递的字符串发送到数据库,而不进行任何检查——我知道这已经很糟糕了 我知道这可能导致SQL注入。但是,撇开SQL注入不谈,还有其他风险吗?在数据库管理器类中输入半准备好的语句之后,null似乎变成了这样 String s = "select * from user where" + user; 当我打印它时,它就是这样结束的: 从用户列表中选择*空 我是否应该让这个测试用例失败,并说这个程序

我正在对别人编写的应用程序进行软件测试。当他们检查数据库中是否有用户的用户名和密码时,他们只需将GUI中传递的字符串发送到数据库,而不进行任何检查——我知道这已经很糟糕了

我知道这可能导致SQL注入。但是,撇开SQL注入不谈,还有其他风险吗?在数据库管理器类中输入半准备好的语句之后,null似乎变成了这样

String s = "select * from user where" + user;
当我打印它时,它就是这样结束的:

从用户列表中选择*空


我是否应该让这个测试用例失败,并说这个程序在将输入发送到DB之前没有正确检查输入,即使它没有登录到用户?

我会让它失败-从用户wherenull获得select*也很奇怪-where子句中没有列名称,这让我觉得sql是动态构建的,和很可能用于多个位置,并且您会在applicationJava+中的其他位置看到类似的行为。当应用于字符串或一个字符串和其他类型的内容时,如果操作数为null,Java的+运算符将在结果中放入四个字符“n”“u”“l”“l”。