【问题标题】:Backbone.js SecurityBackbone.js 安全性
【发布时间】:2012-06-14 10:47:44
【问题描述】:

我现在正在学习 Backbone.js,如果我的问题是nooby,那么很抱歉:-P

在我的程序中,我在服务器端检查我的数据是否正确等等......但我想知道如果用户使用 FireBug 中的控制台更改存储在模型中的数据并尝试 .save() 或.fetch().

有什么办法可以阻止这种行为?

考虑到我所有的数据都将存储在模型中并且可以被用户轻松检索到我不太习惯使用backbone.js,是我自己还是这里有什么问题?!

【问题讨论】:

  • 不,你不能在客户端停止任何东西(骨干与否),在服务器端验证数据。

标签: javascript security backbone.js


【解决方案1】:

一种简单而安全的方法是将用户凭据(用户名和密码)包含在您的模型中,并在服务器端检查每个 AJAX 调用。

为了避免如此多的 bdd requets,您还可以为服务器端的每个登录用户生成一个 id => serial key 的关联数组,并在身份验证过程中通过 fetch() 返回它,然后检查 id 和序列号是否您生成的密钥与每个 AJAX 调用匹配。

【讨论】:

    【解决方案2】:

    但我想知道如果用户使用 FireBug 中的控制台更改存储在模型中的数据并尝试使用 .save() 或 .fetch() 会发生什么。

    然后将编辑后的数据提交到服务器

    有什么办法可以阻止这种行为?

    不,您只需像处理任何请求一样处理它们:执行身份验证/授权以确保允许发出请求的用户这样做。

    考虑到我所有的数据都将存储在模型中,并且可以很容易地被用户检索到,我不太习惯使用backbone.js

    那就别用了。

    但是,如果您不使用 backbond 之类的客户端框架,您会向用户显示这些数据,请不要偏执于保密数据。

    【讨论】:

    • 也许我偏执的原因是我写了一些从某些特定网站获取数据的爬虫机器人......老实说,他们尽了最大努力阻止这样的机器人:-??
    【解决方案3】:

    考虑到我所有的数据都将存储在模型中并且可以被用户轻松检索到我不太习惯使用backbone.js,是我自己还是这里有什么问题?!

    您没有做错任何事,但不使用 Backbone 不会让您的网站更加安全。即使您不使用 Backbone,我也可以在您的站点上启动控制台并向您的服务器发出任何我想要的 ajax 请求。如果我想更进一步,我可以构建一个应用程序来发出我想要的任何请求。

    客户端无法实现真正​​的安全性。无论您是否使用 Backbone 之类的东西,这都是服务器的责任。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-07-01
      • 1970-01-01
      • 2012-01-20
      • 2014-09-13
      • 2010-09-30
      • 2017-04-29
      • 2011-04-21
      相关资源
      最近更新 更多