只看:
(来源:https://xkcd.com/327/)
这个SQL做了什么:
Robert'); DROP TABLE STUDENTS; --
Run Code Online (Sandbox Code Playgroud)
我知道这两个'并且--是用于评论,但是这个词也没有DROP被评论,因为它是同一行的一部分?
可能重复:
如何从"Bobby Tables"XKCD漫画中注入SQL?
https://stackoverflow.com/search?q=sql+injection
有人可以解释SQL注入吗?它是如何导致漏洞的?注入SQL的确切位置在哪里?
我已经做了很多阅读,但仍然不理解100%SQL注入的发生方式!
我想从那些知道基于我的例子的SQL注入的具体例子中看到它,因此它可以被复制,测试和修复.我试过SQL注入我的代码而不能,所以我希望有人来证明我的意思!
1.我认为SQL注入只能通过POST或GET方法进行,这意味着在网站上它应该是帖子形式,例如'注册或搜索'或查询如'search.php?tags = love'?
说这可以注入以下具有POST方法的代码吗?
$name = trim($_POST['username']);
$mail = trim($_POST['email']);
$password = trim($_POST['password ']);
if ($errors == "false") {
$sql =
"INSERT INTO
clients
SET
name='" . mysql_real_escape_string($name) . "',
mail='" . mysql_real_escape_string($mail) . "',
password='" . mysql_real_escape_string(sha1($password)) . "'";
$connection->execute($sql);
}
Run Code Online (Sandbox Code Playgroud)
2.另一个有GET方法: rate.php?like&videoID=250&userID=30
$sql =
"SELECT
videoID
FROM
likes
WHERE
videoID = '" .mysql_real_escape_string($videoID). "' AND UID = '" .mysql_real_escape_string($userID). "' LIMIT 1";
$connection->execute($sql);
Run Code Online (Sandbox Code Playgroud)
请帮助那些对主题感到自由的人,但请使用具体的例子.
提前谢谢,
伊利亚
该代码有什么问题?
$ sql =“选择*来自博客的地方blog_id = $'blog_id'”; $ result = mysql_query($ sql); $ rows = mysql_fetch_array($ result); $ content = $ rows ['blog_content']; echo $ content;
错误是:警告:mysql_fetch_array():提供的参数在第3行的C:\ Program Files \ xampp \ htdocs \ jordan_pagaduan \ blog_delete_edit.php中不是有效的MySQL结果资源。