gpt4 book ai didi

PHP 发布 SQL 命令只会创建和删除表

转载 作者:行者123 更新时间:2023-11-30 01:00:54 26 4
gpt4 key购买 nike

我创建了一个 PHP 表单来运行我想要的任何查询。

<?php
$con=mysqli_connect("host","user","pass","db");
// Check connection
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}

mysqli_query($con,$_POST[myquery]);

mysqli_close($con);
?>

此表单将允许我创建和删除表,以及使用 alter 命令。不过,它不允许我插入值或更新内容。我的代码有问题吗?或者我需要更改数据库主机的设置吗?任何帮助将不胜感激,谢谢!

最佳答案

该代码看起来有效,但它允许您执行所有操作,但不安全。

将“用户”的权限限制为仅 ALTER、CREATE 和 DROP(例如。请记住,DELETE 从表中删除数据,而 DROP 删除完整的表定义及其数据”)。

    GRANT CREATE , DROP , ALTER ON * . * TO 'the_user'@'the_host'

仅向您的数据库中的该用户授予这些权限(您可能拥有其他权限):

   GRANT ALL PRIVILEGES ON `db` . * TO 'the_user'@'the_host';

最后,您还可以在运行之前分析 $_POST[myquery],以限制可能的命令并避免注入(inject)(addslaches)

关于PHP 发布 SQL 命令只会创建和删除表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20138401/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com