【发布时间】:2019-11-21 19:52:39
【问题描述】:
我在 AWS 免费套餐帐户中创建了一个 mysql 数据库实例。它在端口 3306 上侦听。 我有一个实例启动并运行 mysql Ver 14.14 Distrib 5.7.28,适用于 Linux (x86_64),使用 EditLine 包装器、PHP 5.4.16 (cli) 和版本:Apache/2.4.39 () Server。 我有一个注册页面和一个 action_page.php,用于从用户那里获取详细信息并将其存储在 DB 中。
配置文件:
<?php
$connection = mysql_connect('DB-endpoint:3306', 'admin', 'pass');
if (!$connection) {
die('Could not connect: ' . mysql_error());
}
echo 'Connected successfully';
mysql_close($connection);
?>
插入数据:
<?php
include('config.php');
if (isset($_POST['submit'])) {
$name = $_POST['uname'];
$pass = $_POST['psw'];
$bool = true;
if ($bool) {
mysqli_query($connection, "insert into login_detail(name,pass) values ('$name','$pass')");
Print '<script>alert("Successfully Added!");</script>';
Print '<script>window.location.assign("");</script>';
}
}
?>
输入注册详细信息后,数据未存储在我的数据库中
【问题讨论】:
-
您的代码易受 SQL 注入攻击。您应该使用准备好的语句。
-
请不要在数据库中存储明文密码。您应该只存储由
password_hash()制作的安全哈希 -
永远不要存储纯文本密码!请使用 PHP 的built-in functions 来处理密码安全问题。如果您使用的 PHP 版本低于 5.5,您可以使用
password_hash()compatibility pack。 在散列之前不需要escape passwords 或对它们使用任何其他清理机制。这样做会更改密码并导致不必要的额外编码。 -
感谢您给我公平的想法 :)
标签: php mysql amazon-web-services amazon-ec2 amazon-rds