gpt4 book ai didi

php - 在用户输入上使用白名单

转载 作者:可可西里 更新时间:2023-10-31 22:14:15 27 4
gpt4 key购买 nike

我有一个使用用户名和密码登录的简单表单。我想应用白名单以仅允许某些字符。我不知道是否有人需要这个,但这是检索用户名和密码的代码:

$stmt = $conn2->prepare("SELECT username FROM users WHERE username = ? AND password = ?");

$stmt->bind_param("ss", $username, $password);
$stmt->execute();
$stmt->store_result();

我是否合并了这样的东西:

preg_replace( "/[^a-zA-Z0-9_]/", "", $stringToFilter );

如果是这样,我应该将它包含在我的代码中的什么位置?如果用户尝试输入白名单以外的内容会怎样?

添加:好的,如果它在注册期间使用 INSERT 来存储用户名和密码怎么办?

//insert data
$stmt = $conn2->prepare("INSERT INTO users (username, email, password) VALUES (?, ?, ?)");

//bind the parameters
$stmt->bind_param('sss', $username, $email, $password);

最佳答案

注册时在INSERT前添加过滤代码。检查过滤后的字符串是否为空,这样 "!!*&%$#()*&#$" 的用户名不会作为空字符串插入。

$username_clean = preg_replace( "/[^a-zA-Z0-9_]/", "", $_POST['username'] );

if (!strlen($username_clean)){

die("username is blank!");
}

$stmt = $conn2->prepare("INSERT INTO users (username, email, password) VALUES (?, ?, ?)");
$stmt->bind_param('sss', $username_clean, $email_clean, $password_clean);

关于php - 在用户输入上使用白名单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10080850/

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