SQL和PHP简介
我是PHP新手。有人能解释一下这里发生了什么吗?SQL和PHP简介,php,sql,Php,Sql,我是PHP新手。有人能解释一下这里发生了什么吗? 这是获取传递的GET(url)变量“previd”的值。 类似于http://example.com/page.php?previd=123将设置 上一次改为123 接下来,它将变量$id设置为123 下一个$SQL设置为select*from pro,其中prId=123 下一步,一个邪恶的人可以进入http://example.com/page.php?previd=;放下TABLE pro,您的数据库现在已被删除 这就是为什么人们使用消毒
- 这是获取传递的GET(url)变量“previd”的值。
类似于
将设置 上一次改为123http://example.com/page.php?previd=123
- 接下来,它将变量$id设置为123
- 下一个$SQL设置为
select*from pro,其中prId=123
- 下一步,一个邪恶的人可以进入
,您的数据库现在已被删除http://example.com/page.php?previd=;放下TABLE pro
$id=$_GET['previd'];
$SQL = "select * from pro where prId=".$id;
我在约束自己。你进行sql注入,这就是这里发生的事情。如果
DROP TABLE
语句删除了整个数据库,那将非常令人担忧!我的错,表格被删除了,哈哈。哈哈,NP。值得注意的是,虽然应该避免SQL注入漏洞,但多语句执行变体很少出现,因为它要么不受支持(mysql),要么需要特殊处理(mysqli)。然而,对于所有库来说,查询修改仍然是一个风险。
// PDO + MySQL
$pdo = new PDO('mysql:host=example.com;dbname=database', 'user', 'password');
$statement = $pdo->query("SELECT some_field FROM some_table");
$row = $statement->fetch(PDO::FETCH_ASSOC);
echo htmlentities($row['some_field']);