Php 将日期直接插入MySQL数据库是否安全?

Php 将日期直接插入MySQL数据库是否安全?,php,mysql,validation,date,datetime,Php,Mysql,Validation,Date,Datetime,因此,目前我有一个表单,其类型为date,提交时,我使用以下方法处理表单: <?php // Only process POST requests. if ($_SERVER["REQUEST_METHOD"] == "POST") { $date_posted = $_POST['date_posted']; $stmt = $mysqli->prepare("INSERT INTO test(date_posted) VALUES (?)"); $stm

因此,目前我有一个表单,其类型为
date
,提交时,我使用以下方法处理表单:

<?php
// Only process POST requests.
if ($_SERVER["REQUEST_METHOD"] == "POST") {
    $date_posted = $_POST['date_posted'];

    $stmt = $mysqli->prepare("INSERT INTO test(date_posted) VALUES (?)");
    $stmt->bind_param("s", $date_posted);
    $stmt->execute();
    $stmt->close();

    http_response_code(200);
} else {
    http_response_code(403);
}
exit;

您应该像对任何其他字段一样执行相同的健全性检查


您的表单可能只允许输入日期,但我可以向您的服务器发送一个POST请求,在“date_posted”POST字段中包含我想要的任何内容,并将其用于SQL注入。

您应该像对任何其他字段一样进行完整性检查

您的表单可能只允许输入日期,但我可以在“date_posted”POST字段中向您的服务器发送POST请求,并将其用于SQL注入

现在我有一个表单,它的元素类型是date

任何形式的客户端检查都不能依赖。浏览器可能不支持该输入类型,或者用户可能会绕过它

是否有任何潜在的滥用,我应该检查之前插入安全明智

您使用的是绑定参数,因此不需要考虑SQL注入

可能发生的最坏情况是,有人发送的内容不是日期(或格式不正确的数据)。这将产生两种结果之一:

  • 它不符合表中columns数据类型所需的数据语法,插入失败(由于不测试错误,因此以静默方式进行)
  • 它被插入到表中(例如,如果您有一个VARCHAR字段),然后您尝试将其作为日期处理,然后得到错误或坏数据
现在我有一个表单,它的元素类型是date

任何形式的客户端检查都不能依赖。浏览器可能不支持该输入类型,或者用户可能会绕过它

是否有任何潜在的滥用,我应该检查之前插入安全明智

您使用的是绑定参数,因此不需要考虑SQL注入

可能发生的最坏情况是,有人发送的内容不是日期(或格式不正确的数据)。这将产生两种结果之一:

  • 它不符合表中columns数据类型所需的数据语法,插入失败(由于不测试错误,因此以静默方式进行)
  • 它被插入到表中(例如,如果您有一个VARCHAR字段),然后您尝试将其作为日期处理,然后得到错误或坏数据

准备好的语句没有消除这种可能性吗?你可能是指xss攻击吗?准备好的语句没有消除这种可能性吗?你可能是指xss攻击吗?一个被计算为字符串我认为一个被计算为字符串我认为在这种情况下,我在数据库中使用了一个DATETIME字段,所以我想它不会插入那个元素。谢谢你的信息,给了我一点平静的心情!:)在本例中,我在数据库中使用了一个DATETIME字段,因此我认为它不会插入该元素。谢谢你的信息,给了我一点平静的心情!:)