gpt4 book ai didi

php - 阅读 Robin Nixon RE : Sanitizing Input PHP 的 Learning PHP, MySQL & JavaScript 时的问题

转载 作者:可可西里 更新时间:2023-11-01 08:25:09 25 4
gpt4 key购买 nike

<分区>

我目前正在阅读和学习 PHP,书中提供了此作为清理表单输入的正确方法:

function mysql_entities_fix_string($connection, $string) 
{
return htmlentities(mysql_fix_string($connection, $string));
}

function mysql_fix_string($connection, $string)
{
if (get_magic_quotes_gpc()) $string = stripslashes($string);
return $connection->real_escape_string($string);
}

这很好,除了我知道 get_magic_quotes_gpc() 在当前版本的 PHP 中已被弃用。通过查看一些不同的资源,我了解到我不应该使用 get_magic_quotes_gpc() 我应该只使用 sql 准备语句。这让我感到困惑,因为我认为我们仍然需要对字符串进行一些功能性清理。

除非我错了(它发生了,我在这方面相对较新)这是一个很大的禁忌,无论准备好的声明如何:

$username = $_POST['username'];
$stmt = $conn->prepare("SELECT password FROM users WHERE username=?");
$stmt->bind_param("s", $username");
$stmt->execute();
...

但如果是这样的话,这是一个可以接受的卫生过程吗:

function get_post($conn, $var) {
return $conn->real_escape_string($_POST[$var]);
}
...
$username = get_post($conn, 'username');
$stmt = $conn->prepare("SELECT password FROM users WHERE username=?");
$stmt->bind_param("s", $username);
$stmt->execute();
...

或者我需要在它上面添加一些其他的转义函数吗?

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