gpt4 book ai didi

php - 保护 PHP 表单和 MySQL 数据库

转载 作者:行者123 更新时间:2023-11-29 00:11:01 27 4
gpt4 key购买 nike

我上周开始使用 php 和 MySQL,所以如果我缺乏基本的理解而感到沮丧,我深表歉意。

我的网站上有一个简单的 html 表单,其中记录了姓名、电子邮件地址和一条短消息。

<form action="insert.php" method="post">
Your full name:<input type="text" name="name">
Email address:<input type="text" name="email">
Short message:<textarea cols="30" rows="3" name="message"></textarea>

insert.php 看起来像这样......

<?php 
$con=mysqli_connect();
if (mysqli_connect_errno()) {
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
$name = mysqli_real_escape_string($con, $_POST['name']);
$email = mysqli_real_escape_string($con, $_POST['email']);
$message = mysqli_real_escape_string($con, $_POST['message']);

$sql="INSERT INTO Donators (name, email, message, date)
VALUES ('$name', '$email', '$message', NOW())";

if (!mysqli_query($con,$sql)) {
die('Error: ' . mysqli_error($con));
}

header('Location: thankyou.php');
exit;

mysqli_close($con);
?>

然后将其发送到我用我的管理员 php 管理的 mysql 数据库。

我的问题是...

  1. 代码对用户来说是否安全,即电子邮件地址是否受到保护?
  2. 代码对我来说是否安全,即提交的数据在我的数据库中是否受到保护?
  3. 最后,阻止“机器人”填写表格的最佳方式是什么,即 recaptcha 是最好的实现方式吗?我尝试使用 googles recaptcha,但可能是因为我的 css 或其他原因,它没有正确显示。

非常感谢您的帮助!

詹姆斯

最佳答案

1) 永远不会 100% 安全。代码似乎找到了,但您应该注意更新 MySQL 实例以及 PHP 和 HTTP 服务的新补丁和版本。

2) 再一次……是和不是……这是你的角色来确定它是。因此,只要您不在任何网页上显示它们,我们就可以假定它是“安全的”

3) 最好的方法是制作您自己的模块,这样您就不会遭受“泛型”机器人的困扰。我所说的通用是指那些反通用验证码模块的。例如,您可以向用户提出一个简单的人类问题。这应该足以避免最大的垃圾邮件机器人。

此致,希望对您有所帮助。

关于php - 保护 PHP 表单和 MySQL 数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25054357/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com