关于header()和表单安全性的东西

时间:2012-07-03 17:38:05

标签: php forms security header

我正在建立一个登录系统,我也希望让它更安全一些。 我不会发布我的整个登录过程文件,因为它还没有完成,但我确实需要一个简短的待办事项列表来使整个系统更安全。我知道使用PDO的预处理语句有助于防止SQL注入。我显然也用盐哈希密码。还有什么是关键的吗? 真的会帮助我!

我还在某处读过表格中不建议使用header()。 (例如:在注册过程完成后重定向用户。) 这是真的吗?还有什么其他选择?

顺便说一下,表单数据显然会在另一个页面处理,我想知道是否可以从进程文件中发回错误(例如“用户名太短”)。我知道jQuery的.post()和回调函数很容易实现,但我只是好奇:D

2 个答案:

答案 0 :(得分:1)

当然,你可以发回错误。例如,如果你有

<form method="post" action="action.php">
  <input type="text" name="username" />
</form>

然后在action.php中,当检查$_POST['username']的长度时,如果它太短,请执行类似

的操作
 print('<p class="warnings">The username is too short; it must be between X and Y characters.</p>');
 require('yourform.php');

其中yourform.php包含上述表单的HTML。

答案 1 :(得分:1)

以下是关于登录系统的建议:

  • 将用户ID存储在Cookie中
  • 生成特殊令牌和哈希+盐并将其存储在Cookie中
  • 将所有内容存储在数据库中
  • 从每个页面加载的cookie中获取数据,并尝试在数据库中搜索它们
  • 如果未找到,则注销用户
  • 在每个页面加载时更改令牌

您可以使用header()重定向用户,但也可以使用die()exit(),因为如果您不使用其中一个,则其余代码将继续执行。