我正在尝试创建一个安全的注册表单,这只是前几个字段中的另外十几个字段,但这些字段无关紧要。我有点安全性很好,我想知道以下代码是否足以防止XSS和SQL注入。
我已经将表单的开头包含在内,以表明我需要发布自我效果。
{{1}}
答案 0 :(得分:6)
<强> 1。感谢使用准备好的陈述!
<强> 2。请阅读以下
总的来说,从安全的角度来看,这看起来相当不错,但你肯定会在任何地方使用htmlentities()
来解决问题。
根据您的逻辑,如果我想使用ThisIsSo<Secu>r
之类的密码,那么您的代码会将其转换为ThisIsSo<Secu>r
,因此我无法登录您的网站,除非您也在登录页面上使用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']); ?>">