sql中的/ *是什么意思?

时间:2011-08-15 05:47:53

标签: php mysql

我看过一段sql注入示例代码,如下所示,sql中的'/ *'是什么意思?

$_POST['username'] = chr(0xbf) . chr(0x27) . ' OR username = username /*';

$_POST['password'] = 'guess';

$mysql['username'] = addslashes($_POST['username']);

$mysql['password'] = addslashes($_POST['password']);

$sql = "SELECT * FROM   users WHERE  username = '{$mysql['username']}' AND password = '{$mysql['password']}'";

$result = $db->query($sql);

3 个答案:

答案 0 :(得分:8)

/*是评论的开头。 */结束评论。攻击者试图注释掉查询的其余部分。

答案 1 :(得分:0)

/*开始发表评论,因此在此之后的所有内容都会被忽略,直到遇到*/

您的攻击者引入了一条公开评论,从而抵消了密码检查的影响

答案 2 :(得分:0)

/ *表示多行评论的开始

例如:

/*

CREATE PROC A_SAMPLE_PROC

BEGIN

AS
SELECT * FROM A_SAMPLE_TABLE
END

*/

--表示单行评论。在MS SQL Server Studio中注释的键盘快捷键是Ctrl + K, Ctrl + C