此用户表单的潜在安全问题

Potential security issues of this user form

我正在尝试创建一个安全的注册表单,这只是前几个字段,还有大约十几个字段,但这无关紧要。我有点安全意识,我想知道以下代码是否足以防止 XSS 和 SQL 注入。

1.感谢使用准备好的语句!

2。阅读下文

总的来说,从安全的角度来看,这看起来相当不错,但您肯定会 运行 通过在任何地方使用 htmlentities() 来解决问题。

按照你的逻辑,如果我想使用像 ThisIsSo<Secu>r 这样的密码,那么你的代码会将其转换为 ThisIsSo&lt;Secu&gt;r 这样我就无法登录到你的网站除非您还在登录页面的 username/password.

上使用 htmlentities()

将用户数据保存到数据库时,您应该始终保持用户键入内容的完整性,并在回显数据时实施正确的转义。例外情况是像 CKEditor 这样的东西;但编辑会为您处理转义。

为了更好地说明这一点,您需要像这样使用 htmlentities()

<div class="welcome-banner">Welcome <?php echo htmlentities($row['firstname']); ?>!</div>

或者像这样:

<h3>Editing Your Profile</h3>
<label>First Name</label><br>
<input type="text" name="firstname" value="<?php echo htmlentities($row['firstname']); ?>">