如何在backbone.js中安全地发送/接收数据
Posted
技术标签:
【中文标题】如何在backbone.js中安全地发送/接收数据【英文标题】:how to send/receive data securely in backbone.js 【发布时间】:2012-01-20 23:36:27 【问题描述】:我创建了 RESTFUL url,当主干获取时会响应一些 JSON 数据。
因此,/lists
之类的 url 以用户创建的 lists
的 json 数组响应。我希望如果通过地址栏输入(如mydomain.com/lists
)访问 url,则 json 数据以文本形式显示在浏览器上。我希望服务器仅在从应用程序中访问 url 时才响应。有人可以给我一些关于如何实现这一点的提示吗?
【问题讨论】:
你不能那样做。应用能做的一切,承载应用的浏览器也能做。 你可能会讨厌像 Firebug 这样的开发者工具。它们让用户对您的应用有很多深入了解(以及如何处理)。 【参考方案1】:就像@Thilo 所说,您无法阻止使用正确工具的人查看网络上发生的事情,Firebug 的控制台/网络选项卡已经跟踪请求并显示响应内容。
话虽如此,您可以做的是检查 HTTP_X_REQUESTED_WITH HTTP 标头是否设置为“XMLHttpRequest”,在这种情况下只返回 JSON。 Backbone 进行 Ajax 调用,因此 Backbone 调用总是如此(在现代浏览器中)。同样,这也无济于事,除非直接在地址栏中键入它(并执行正常的 GET 请求)不会看到 JSON。
【讨论】:
是HTTP_X_REQUESTED_WITH
检查ajax请求的万无一失的方法还是我需要在服务器端进行更多检查?
jQuery 将始终在 Ajax 请求期间设置此标头,请检查您的 Ajax 库。
重新“万无一失”。 jQuery 请求将拥有它,但任何发出请求的人也可以添加此标头。同样,这仅对直接在地址栏中键入它的人有所帮助。如果有人想“破解”它,他们可以。以上是关于如何在backbone.js中安全地发送/接收数据的主要内容,如果未能解决你的问题,请参考以下文章
在 dev 和 prod 环境中设置 Backbone.js 从 Symfony2 获取