如何将php代码插入数据库?

时间:2017-04-25 12:56:46

标签: php mysql database insert-into

我正在测试我的mysql代码漏洞 这是php注入:

$myvar = "varname";
$x = $_GET['arg'];
eval("\$myvar = \$x;");

或任何其他PHP代码,如打击:

<?php mysqli_close($conn); ?>

我的目的是将它们插入数据库但不执行它们 Actualy这些代码将由用户从html输入表单插入到DB中,我想为用户显示它们。(像消息一样) 的问题
问题是,当我尝试将它们插入到数据库中时,它会失败,我的插入查询是这样的:

mysqli_query($conn,"INSERT INTO table (usr,id,message,date) VALUES ($usr,'$id','$message','$date')");

代码位于$message 我还应该添加这个验证功能:

function validate($data)
{
    stripslashes($data);
    htmlspecialchars($data);
    htmlentities($data);
    strip_tags($data);
    addslashes($data);
    return($data);
}

在将$message插入数据库之前,我已通过此函数validate($message)对其进行了验证,但即使这样也无法解决问题。


我已搜索过但谷歌中没有关于此问题的结果!
任何人都知道如何将代码插入mysql数据库?

2 个答案:

答案 0 :(得分:0)

使用real_escape_string函数转义输入数据:http://php.net/manual/en/mysqli.real-escape-string.php

现在,您可以安全地创建可在SQL语句中使用的合法SQL字符串。

答案 1 :(得分:0)

要在数据库中插入代码php,请遵循以下选项: 1.要插入数据,请使用htmlspecialchars。例如:

$string = '<?php echo "Hello world"; ?>';
htmlspecialchars($string);
  1. 在读取/获取数据之前,请使用htmlspecialchars_decode。示例:htmlspecialchars_decode($string);

    希望这可以帮到你: - )