【问题标题】:Technical user break the security in JSP pages技术用户破坏 JSP 页面的安全性
【发布时间】:2013-02-09 14:00:08
【问题描述】:

我已经在 J​​SP 页面中实现了基于字段的安全性。

如果该字段对用户是只读的,我把属性 readonly="true" ;

但是有些用户是技术人员,他们知道Firefox中的firebug或相关工具,使用这些工具,他们从dom中删除只读属性并更改字段的值。

我该如何控制呢?或任何其他机制?

【问题讨论】:

  • 服务器端验证?
  • 你能放一些JSP的代码吗?正如@g.d.d.c 所说-服务器端验证是最好的。这个概念被称为权利——通过这个page的什么是权利部分
  • 一般来说,如果你不希望某些参数被操纵,不要让那个参数对用户可用。您不想编辑哪些类型的信息?
  • 你怎么能依赖客户端来验证任何东西?最起码的是在服务器上也有一个令牌,并检查合理操作的相等性,比如删除。最后,JSF 是一个框架,能够轻松地做你想做的事。那么为什么不走那条路呢?
  • hmmm... 客户要求不要以任何其他方式使用 JSF @skuntsel?

标签: java html security jsp frameworks


【解决方案1】:

您不能对用户修改您提供的文档采取任何措施。您发送给客户的任何内容都在他们的控制之下,不在您的控制范围内。

但您只能采取一些技术来避免或检测此类参数篡改:

  • 避免:您向客户端提供的可用参数越少,可以篡改的参数就越少。如果您不想更改某个参数(可能是任何隐藏的表单字段),请不要将其发送到客户端,而是将其保留在服务器端。您可以将这些参数存储在客户端会话内的某种容器中,并将其与当前表单相关联。然后发送给客户端的唯一信息是容器的随机标识符,该标识符引用服务器端存储的参数。
  • 检测:您可以使用像MAC 这样的加密哈希函数来验证客户端返回的数据是否与发送给它的数据相同。但请注意,这仍然允许replay attacks

【讨论】:

    猜你喜欢
    • 2011-06-13
    • 1970-01-01
    • 2016-03-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多