SQL命令文本双引号和单引号混淆

本文关键字:单引号 命令 文本 SQL | 更新日期: 2024-09-25 07:30:57

我正在为我的网站制作一个登录系统。我正在努力使这个代码工作。

cmd.CommandText="SELECT Usernames,Passwords FROM logininfo WHERE Usernames="" + UsernameInput.Text
        + "AND Passwords="" + PasswordInput.Text + '"";

我唯一的问题是我不知道把"answers"类型的引号放在哪里。所以这是我遇到麻烦的代码。我知道这是正确的,但单引号和双引号的位置让我很困惑,不允许我编译。

SQL命令文本双引号和单引号混淆

请不要连接SQL,这会使您暴露于SQL注入。请改用参数。

cmd.CommandText="SELECT Usernames,Passwords FROM logininfo WHERE Usernames=@username AND Passwords=@password";
cmd.Parameters.AddWithValue("@username", UsernameInput.Text);
cmd.Parameters.AddWithValue("@password", PasswordInput.Text);

此外,请参阅Scott Chamberlain评论中的建议,在数据库中以明文或加密的方式存储密码是一件坏事。只需存储哈希。但阅读一下如何做到这一点,它并不是即时的(你需要正确地对其进行加盐处理,并使用诸如SHA512之类的强大哈希算法)。

在这里解释太复杂了,但你会发现很多关于这个问题的指南。