php - 如何从 Web 浏览器隐藏 SQL 查询 (PHP)

标签 php mysql security

我是这个论坛的新手,我的 MySQL/PHP 站点遇到了困境。现在我创建了一个函数,它将向其传递 SQL 查询并执行它。我没有考虑到传递给函数的 SQL 查询显示在所有浏览器的“查看源代码”中;这是一个很大的安全问题,因为黑客可以看到查询。这是该函数的片段:

// connect to MySQL

$connection = mysql_connect($host,$username,$password) or die("Couldn't connect to MySQL". mysql_error());

// selects the database
$db = @mysql_select_db($db_name,$connection) or die("Couldn't select database"); 

function statement ($query)
{

    global $connection, $db;
    $sql = $query;
    $results = mysql_query($sql, $connection) or die(mysql_error());
    return $results;

}

其名称如下:

$cat_results = statement("select * from $category");

有没有办法使用我拥有的功能隐藏从浏览器传递的查询?如果没有关于此功能的更好方法的任何建议吗?

非常感谢对此的任何想法!!

安德烈

最佳答案

首先,客户端无法查看PHP,它始终由服务器执行。其次,客户端在任何时候都不能在您的服务器上执行 SQL。这是SQL Injection的基础。如果您使用 JavaScript 构建查询,然后向其发送要执行的 php 脚本,那么您将面临一个非常严重的漏洞。

关于php - 如何从 Web 浏览器隐藏 SQL 查询 (PHP),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4060921/

相关文章:

mysql - 如何使用 subselect 更新 MySQL 表

java - 保护不受信任的客户端上的 Java 运行时数据

python - mysql 从 jython 插入变量

PHP + MySQL 复杂

php - 如何在 XPath 评估之前处理字符串中的双引号?

php - 无法根据codeigniter中的id显示数据

mysql now() 函数

google-chrome - 如何在 .Net framework 4.0.30319 中设置 HttpCookie Samesite 属性?

iphone - 游戏中心安全? iPhone SDK

php - 将 PHP 数组写入文件生成二进制文件而不是纯文本