【问题标题】:code sanitization question代码清理问题
【发布时间】:2011-04-14 18:51:35
【问题描述】:

不清理管理员用户提交的数据是否安全,只清理非管理员用户提交的数据?

【问题讨论】:

    标签: sanitization


    【解决方案1】:

    您应该清理所有输入,相信您的管理员用户是一种天真的方法。

    【讨论】:

    • @login - 你相信自己吗?你从不犯错?
    • 假设管理员永远是你也太天真了,恐怕!
    • 如果你是呢?显然,您发布此内容时已经在您的脑海中确定了答案,并且您打算进行辩论。答案是否定的,不清理应用程序的任何输入是不安全的。特别是如果您是管理员并且您本质上并不知道这个问题的答案。另外,你发错网站了。一般编程问题属于programming.stackexchange.com
    【解决方案2】:

    如果您决定清理用户数据,则应对所有用户进行清理,包括管理员用户输入。

    作为管理员用户并不意味着他们输入的数据总是安全的。

    【讨论】:

    • @login:您确定您将永远担任该工具/应用程序的管理员角色,并且不会添加其他管理员吗?如果有人入侵了管理员帐户并输入了一些奇怪的东西怎么办?
    【解决方案3】:

    不清理管理员输入可能不是一个好主意,除非清理过程的某些部分会阻止管理员做她需要做的事情。您必须考虑两件事:

    • 管理员值得信赖吗? (我希望如此)
    • 是否存在在我不知情/未经许可的情况下某人成为管理员的风险? (这更有可能——有人可以破解管理员密码或利用漏洞来提升他们的权限)。

    简而言之,是的,您应该对所有内容进行清理 - 除非它对管理员造成如此大的障碍,以至于您愿意牺牲安全性。无论您是否清理管理员输入,请确保管理员有一个非常安全的密码,非常安全地存储。

    【讨论】:

    • @login 你确信你永远不会丢失密码并且不可能破解吗?我相信您可以相信自己,但这并不意味着您的帐户不会被黑客入侵。此外,您必须考虑到您可能会出现打字错误而导致问题。
    【解决方案4】:

    从更广泛的角度考虑:如果您的系统完全包含“管理员”帐户,这意味着您有一些“普通用户”永远看不到的特殊操作,甚至可能是一些关键的、战略性的或只是危险的系统的数据/稳定性/可用性。

    管理员是人。人类会犯错误。关键/战略/危险操作中未被注意到的错误意味着一场灾难。

    您应该比普通用户更仔细地清理管理员的输入,因为“管理员”最容易意外地破坏您的系统。

    当然,如果您的整个管理面板只是一个接受原始 SQL 查询以执行的文本字段,那么偏执于管理输入是没有意义的 :)

    【讨论】:

      猜你喜欢
      • 2012-02-26
      • 1970-01-01
      • 2012-05-21
      • 1970-01-01
      • 2011-03-28
      • 1970-01-01
      • 1970-01-01
      • 2023-04-07
      • 2010-11-22
      相关资源
      最近更新 更多