2012-06-14 39 views
6

我正在学习Backbone.js的此刻,很抱歉,如果我的问题是nooby :-PBackbone.js的安全

在我的计划

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

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

考虑我的所有数据将被存储在模型并能为用户轻松地检索我不是很舒服Backbone.js的使用,只是我或者是有什么错在这里?!

+0

不,你不能停止在客户端(骨干与否)什么,验证在服务器端的数据。 – Esailija

回答

6

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

为了避免这么多BDD requets,还可以生成的id => serial key到每个相关的阵列登录的用户在服务器端和AUTH proccess期间fetch()返回,然后,检查ID和你生成的序列码匹配每个AJAX调用。

6

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

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

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

不,您只需要以处理任何请求的相同方式处理它们:执行认证/授权以确保允许请求的用户这样做。

考虑我的所有数据将被存储在模型并能为用户轻松地检索我不是很舒服Backbone.js的使用

那么就不要使用它。

但不要偏执保持数据的秘密,如果它的东西,你会如果你没有使用像主链连接客户端框架显示给用户。

+0

也许我的原因是偏执狂是我写的获取从某些特定网站的数据的一些爬虫机器人......这是诚实尽最大努力停止这种机器人: - ?? –

5

考虑到我的所有数据都将存储在模型中,并且可以很容易地被用户检索到,我不太喜欢使用backbone.js,它只是我还是在这里有什么问题?

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

没有真正的安全性,可以实现客户端。这是服务器的责任,不管你是否使用Backbone。