Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/powerbi/2.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 MySQL安全改进更新_Php_Mysql_Forms_Security - Fatal编程技术网

PHP MySQL安全改进更新

PHP MySQL安全改进更新,php,mysql,forms,security,Php,Mysql,Forms,Security,我想将表单数据在线发送到服务器。 目前我正在使用xampp,因此用户名和密码是“root”和“” 如果我要把这个放到网上,我必须把我的主机登录详细信息对吗? 显然,这将是一个非常严重的安全问题,因为任何人都可以在我的流程文件中看到它 我已经找到了很多关于防止SQL注入的语句的信息,但是没有找到关于如何隐藏用户名/密码的信息,我认为这是一件更重要的事情 我是否遗漏了用户名/密码的一些基本信息? (我不想创建用户登录帐户,只想注册基本的时事通讯) 我的代码应该防止SQL注入 所以我想知道的是,如

我想将表单数据在线发送到服务器。
目前我正在使用xampp,因此用户名和密码是“root”和“”
如果我要把这个放到网上,我必须把我的主机登录详细信息对吗?
显然,这将是一个非常严重的安全问题,因为任何人都可以在我的流程文件中看到它

我已经找到了很多关于防止SQL注入的语句的信息,但是没有找到关于如何隐藏用户名/密码的信息,我认为这是一件更重要的事情
我是否遗漏了用户名/密码的一些基本信息?

(我不想创建用户登录帐户,只想注册基本的时事通讯)


我的代码应该防止SQL注入


所以我想知道的是,如果我要输入我的用户名-密码数据库并将其上传到服务器,如果我像其他网页一样将这些详细信息上传到public\u html,这些详细信息是否安全?

这里有几件事要做

既然您提到了SQLi,并且考虑到您使用的是PHP+MySQL,那么您应该考虑使用prepare()、bind()和execute()函数来执行prepared语句

第二,即使在考虑将某些内容联机或正确使用SQL之前,也要更改默认用户名/密码

现在,如果你想让你的服务器在线,我假设你有一个服务器或证书到某个地方,你可以运行XAMP或手动配置它的服务。无论如何,这些凭据是数据库的,与主机服务器登录凭据不同


只要该.php文件在服务器上得到了适当的保护,通常的做法是在该文件中包含用户名/密码。

因此,当您将其移动到主机时,代码如下所示:

<?php
// database details
$servername = 'localhost';
$username = 'username';
$password = 'password';
$database = 'database';

// form submission
$email=$_POST['email']; 

// Create connection
$conn = new mysqli($servername, $username, $password, $database);
// Check connection
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
} 

// prepare and bind
$stmt = $conn->prepare("INSERT INTO scenariosubmission (Email) VALUES (?)");
$stmt->bind_param("s", $email);

$stmt->execute();

echo "New records created successfully";

$stmt->close();
$conn->close();
?>
<? 
// database details
$servername = 'localhost';
$username = 'your userid with your hosting company';
$password = 'hosting company provided mysql password';
$database = '';

如果这是数据库查询的一个示例,您需要担心更严重的问题。。。。。首先,用准备好的语句/绑定变量切换到MySQLi或PDO,以防止在这里一旦修改了SQL注入孔,然后考虑将数据库凭据存储在公共Web目录之外的单独文件中,即使使用WAMPP,也不需要使用根用于数据库连接,并且(实际上)你不应该预测
mysql.*
函数意味着我的即时否决票。但是,使用

<? 
// database details
$servername = 'localhost';
$username = 'your userid with your hosting company';
$password = 'hosting company provided mysql password';
$database = '';