我是这个论坛的新手,我的 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/