Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
防止密码输入字段中的SQL注入?PHP_Php_Passwords - Fatal编程技术网

防止密码输入字段中的SQL注入?PHP

防止密码输入字段中的SQL注入?PHP,php,passwords,Php,Passwords,在注册/登录表单中,我们验证用户名和电子邮件等用户输入,并确保其不包含任何特殊字符。 我的问题是关于密码输入字段。是否可以使用密码输入字段插入sql查询?因为我们允许用户添加特殊字符 我的问题是关于密码输入字段的 是否可以使用密码输入字段插入sql查询 如果你使用事先准备好的陈述,就不会 但是,password\u hash()和password\u verify()已经考虑到了这一点,您不应该操纵或限制密码 这是你在这个时代应该使用的东西 如果您转义一个包含引号的密码,例如Joh

在注册/登录表单中,我们验证用户名和电子邮件等用户输入,并确保其不包含任何特殊字符。 我的问题是关于密码输入字段。是否可以使用密码输入字段插入sql查询?因为我们允许用户添加特殊字符

我的问题是关于密码输入字段的
是否可以使用密码输入字段插入sql查询

如果你使用事先准备好的陈述,就不会

但是,
password\u hash()
password\u verify()
已经考虑到了这一点,您不应该操纵或限制密码

这是你在这个时代应该使用的东西

如果您转义一个包含引号的密码,例如
John'sPlace
,该密码将被修改为
John'sPlace
,而如果您使用所述的哈希方法,则在验证时会自动失败

即使一个潜在的黑客尝试类似:
String');删除表用户--password\u hash()
时,密码输入仍然会作为散列输入数据库


类似于
$2y$10$.vga1o9wmrjrwavxd98hnogsnpdczlqm3jq7kned1rvagv3fykkkk1a的东西(从手册中提取的示例哈希)不会造成任何伤害。

是的,如果您不加以保护,这是完全可能的。使用。是的,这是可能的。为了防止您的数据库被黑客攻击,请尝试使用MySQLi或PDO。@jeroen“您正在对密码进行哈希运算,对吗?”---希望如此;-)@关于可能的重复;对于注射部分,是的。然而,该Q&A并没有讨论如何操作密码,以及转义对注入字符或MySQL可能抱怨的任何其他字符有何作用;-)这是问题的基础。@jeroen yep是的,谢谢你的回答:)@FrankerZ我认为你应该仔细阅读评论区和问题。问题不是关于这个,而是关于密码。让我们看看这里,1。“使用事先准备好的声明”。(这篇文章中的要点1:使用准备好的语句和参数化查询。)2.密码字段在涉及后端时只不过是一个常规输入字段。如果您希望添加到重复列表中,请添加或从其他50个重复问题中选择一个。@FrankerZ问题的风险远不止sql注入。这篇文章应该写得不同。忘记准备好的陈述材料;我很清楚,他们自己(OP)不知道转义密码的作用。