【发布时间】:2014-03-20 18:23:41
【问题描述】:
我最近开始使用 BackboneJS,对于一个新项目,我需要访问我拥有完全访问权限的服务器上的 MySQL 数据库。
我一直在阅读 RESTful API,现在我想设置一个,但我不太确定一件事:其他人能否通过我将设置的 RESTful API 将行插入我的数据库(使用Slim)
我知道由于域策略相同,因此无法使用 JavaScript/AJAX。但是如果有人使用 PHP/cURL 或类似的东西向 API 发帖怎么办?是否可以使用此方法插入行而无需我在服务器端检查内容?
简而言之,我只是想确保我是唯一一个可以将东西插入(创建、放置、删除)数据库的人,我并不真正关心读取(获取)但我猜如果你不能插入你也不能读。
编辑
请注意,这个问题不是关于验证用户,而是关于其他人是否能够使用 cURL 或类似的东西简单地使用我的 API。
【问题讨论】:
-
查看编辑。据我所知,该问题的答案与用户身份验证有关。我只想对我的应用程序进行身份验证(并且我的应用程序将有单独的用户)。简而言之,我不希望其他人能够使用服务器端部分 (API)。
-
在这种情况下,我不确定我是否了解您的架构。您有一台运行 PHP 的服务器和另一台运行数据库的服务器?还是只有一台服务器?您意识到 Backbone 只是一个用于编写客户端 javascript 的库,它将使用某种服务器端语言访问您的 REST API,对吗?
-
我有一个服务器 (PHP/MySQL) 和一个 Backbone 应用程序(将位于同一台服务器上)。我只是想确保其他人无法通过 API 执行
POST domain.com/dog并添加记录。不过,您的喜欢读起来很有趣!谢谢你:) -
RESTful 服务的工作方式是您的用户将在他们的浏览器上运行的backbonejs 的帮助下从他们的浏览器进行
get/put/post/delete调用。这些调用由 LAMP 堆栈处理。控制谁插入数据的唯一方法是以某种方式对其进行身份验证。他们是否从他们的骨干增强浏览器或 curl 发布是无关紧要的。