Web开发:管理员后端应该如何锁定?

时间:2011-10-07 00:54:54

标签: validation admin

我将在我的示例中使用PHP,但我的问题适用于任何编程语言。

每当我处理可以由未登录的用户(换句话说,不受信任的用户)填写的表单时,我会做一些事情以确保在数据库中存储是安全的:

  • 验证$ _POST中是否存在所有预期字段(没有使用Firebug等工具删除)
  • 确认$ _POST中没有意外字段。这样,数据库中的字段就不会被意外删除。
  • 验证所有预期字段是否为预期类型(几乎总是“字符串”)。这样,如果恶意用户正在修改代码并将“[]”添加到字段名称的末尾,则不会出现问题,从而使PHP将该字段视为数组,然后对其执行检查,就好像这是一个字符串。
  • 确认已填写所有必填字段。
  • 确认所有字段(包括必填字段和可选字段)均已正确填写(例如,电子邮件地址和电话号码均为预期格式)。
  • 与上一项相关,但值得成为自己的项目:验证下拉菜单中的字段是否已提交实际位于下拉菜单中的值。同样,用户可以修改代码并将下拉菜单更改为他们想要的任何内容。
  • 清除所有字段,以防用户有意或无意地包含恶意代码。

我不相信上述任何内容都是过度的,因为正如我所提到的,填写表单的用户不受信任。

然而,当涉及到管理后端时,我不确定所有这些都是必要的。这些是我仍然认为必要的东西:

  • 确认已填写所有必填字段。
  • 确认所有字段(包括必填字段和可选字段)均已正确填写(例如,电子邮件地址和电话号码均为预期格式)。
  • 清除所有字段,以防用户有意或无意地包含恶意代码。

我正在考虑删除剩余的项目以节省时间并减少代码(因此代码更易读)。这是一个合理的事情,还是值得平等对待所有形式,无论它们是否被可信赖的用户填写?

这是我能想到的唯一两个原因,为什么平等对待所有形式可能是明智的:

  • 可信用户的凭据可能由不受信任的用户找到。
  • 受信任用户的计算机可能感染了与表单混淆的恶意软件。我从来没有听说过这样的恶意软件,并怀疑这是真的要担心的事情,但无论如何都要考虑。

谢谢!

1 个答案:

答案 0 :(得分:1)

在不知道所有细节的情况下,很难说。

但是,总的来说,这种情况应该是可以重用代码的情况。换句话说,感觉这种锅炉板形式验证不需要为每个独特的表格重写。相反,我的目标是创建一些可用于任何形式的可重用外部类。

您提到过PHP,并且已经有很多表单验证类可用:

http://www.google.com/search?gcx=w&sourceid=chrome&ie=UTF-8&q=form+validation+php+class

祝你好运!