yeh*_*uda 0 php sql sql-injection
为什么我的sql注入我试图练习不工作.
$sql = "INSERT INTO animals VALUES ('', '{$string}', 'rover')";
Run Code Online (Sandbox Code Playgroud)
我有一个输入框,我把下面的内容
', ''); drop table dropme; --
Run Code Online (Sandbox Code Playgroud)
并且它被替换为注入代码.
但是sql失败了.但是当我在phpmyadmin中处理以下语句时,它确实有效.
INSERT INTO animals VALUES ('',' ', ''); drop table dropme; -- ','rover')";
Run Code Online (Sandbox Code Playgroud)
怎么会这样?我的浏览器是否会自动为其转义
没有PHP/MySQL接口允许您一次执行多个语句.PHP中无法进行此类SQL注入.
当您在phpMyAdmin中执行它时,它会将您的字符串拆分为单独的查询并一次执行一个.
PHP中可能的SQL注入类型是这样的:
$dirtyString = "' OR 1 = 1 UNION ALL SELECT * FROM private_table WHERE '1' = '1";
$query = "SELECT * FROM public_table WHERE `col` = '$dirtyString'";
Run Code Online (Sandbox Code Playgroud)