Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/261.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何对黑客隐藏SQL语句?_Php_Mysqli_Sql Injection - Fatal编程技术网

Php 如何对黑客隐藏SQL语句?

Php 如何对黑客隐藏SQL语句?,php,mysqli,sql-injection,Php,Mysqli,Sql Injection,我想在黑客查看源代码时隐藏我的数据库连接详细信息 因为他们可以向我的数据库发送恶意代码 例如: <?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_quer

我想在黑客查看源代码时隐藏我的数据库连接详细信息 因为他们可以向我的数据库发送恶意代码

例如:

<?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文件。用户在浏览器中看到的是浏览器解析的输出


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

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

正确的方法是阻止访问PHP代码本身。将数据库信息放在web服务器只能读写的文件中可以防止非法访问。这样做的缺点是,如果需要更改信息,您需要root/admin帐户来更新信息


为了防止SQL注入,您应该使用real_escape_string表示字符串,而数字表示数字。

如果黑客可以查看您的源代码,他们也可以读取您的密码,他们可以读取您的密码、加密密钥以及任何安全可行的其他内容。访问者应该不能看到您的源代码。如果你真的担心有人看到php,你可以定义用户名和密码,然后将它们存储在一个不在网站目录中的文件中。如果一切正常,用户就看不到你的php源代码,虽然将您的凭据放在web根目录之外是一种好的做法,并且在需要时
包含它们。用户无法看到php代码(除非您的服务器配置错误)。因此,将数据库密码放在PHP代码中不会让黑客使用。黑客不应该访问服务器上的文件,也不应该在服务器上看到PHP源代码,服务器周围应该有一个安全机制来防止这种情况。不,要防止SQL注入,应该使用。@MarcelKorpel这是另一个,可能更容易的选择。感谢添加。我的意思是,当我在同一页中编写html表单和sql语句时,当用户从浏览器单击“查看源代码”时,他可以看到它。如果代码包含在php标记中,则无法通过“查看源代码”选项查看。谢谢,我不知道没有问题,当我第一次开始学习用php来使用数据库时,我就想知道这一点。