如何在黑客面前隐藏SQL语句


How to hide SQL statements from hackers?

我想在黑客查看源代码时隐藏我的DB连接细节因为他们可以发送恶意代码到我的数据库。

例如:

<?php
$con=mysqli_connect("example.com","peter","abc123","my_db");
// Check connection
if (mysqli_connect_errno())
  {
  echo "Failed to connect to MySQL: " . mysqli_connect_error();
  }
mysqli_query($con,"INSERT INTO Persons (FirstName, LastName, Age)
VALUES ('Peter', 'Griffin',35)");
mysqli_query($con,"INSERT INTO Persons (FirstName, LastName, Age) 
VALUES ('Glenn', 'Quagmire',33)");
mysqli_close($con);
?>

黑客现在知道我的数据库的用户名、密码和名称,他可以用错误的代码注入我的数据库。我搜索了一下网站,但找不到合适的格式来回答我的问题。

Php是一种服务器端语言,不能被其他人读取,除非他们有Php文件,用户在浏览器中看到的是浏览器解析的输出。

只要你不回显,打印或以任何方式显示你的凭据,你应该是好的

他们无法读取数据库信息,除非他们真的入侵或破解了您的网络帐户。您可以对数据库信息进行编码,但仅此而已。

正确的方法是阻止对PHP代码本身的访问。让包含文件中的数据库信息只读取&可由web服务器写,可以防止恶意访问。这样做的缺点是,如果您需要更改信息,则需要root/admin帐户来更新信息。

为了防止SQL注入,您应该使用real_escape_string作为字符串,使用is_numeric作为数字。