使用 Restangular 使用 RESTful API - RESTful API 将数组作为顶级对象返回是否安全
Consuming a RESTful api with Restangular - Is it secure for a RESTful api to return an array as a top-level object?
我正在使用Python Flask创建一个RESTful Web服务。对于我的一个端点,我想返回一个用户列表。API 终端节点按以下格式返回 JSON:
{
"users": [
{
"Email": "email1@example.org",
"First": "Tom",
"Last": "Jones",
"id": 1
},
{
"Email": "email2@example.org",
"First": "Steven",
"Last": "Fry",
"id": 2
},
{
"Email": "email3@example.org",
"First": "Monty",
"Last": "Python",
"id": 3
}
]
}
如果我这样做,Restangular 会响应
错误:getList 的响应应该是数组而不是对象或 别的
这是设计使然,因为 Restangular 需要一个数组而不是一个 Javascript 对象。据我了解,有两种首选选项可以解决此问题:
选项 1 - 将响应包装在一个数组中,如下所示:
[{
"users": [
{
"Email": "email1@example.org",
"First": "Tom",
"Last": "Jones",
"id": 1
},
{
"Email": "email2@example.org",
"First": "Steven",
"Last": "Fry",
"id": 2
},
{
"Email": "email3@example.org",
"First": "Monty",
"Last": "Python",
"id": 3
}
]
}]
但是,根据这篇文章 http://flask.pocoo.org/docs/0.10/security/#json-security 这并不安全。我的理解在这里正确吗?
选项2 - 第二个选项是使用此方法:https://github.com/mgonto/restangular#my-response-is-actually-wrapped-with-some-metadata-how-do-i-get-the-data-in-that-case在这种情况下,是否有可能(我需要吗?)在所有返回多个项目的端点上为每个getList请求创建一个拦截器,例如"post"端点,"消息"端点等?这是一个可行或好的方法吗?
我的理解中缺少什么吗?
选项 1 似乎工作量较少,但可能会引入安全问题。选项 2 将做更多的工作,但可以缓解潜在的安全问题(如果有的话)。
如果有更好的"选项 3",很高兴听到它!
你可以将isArray设置为false,并正常处理你的请求检查 https://github.com/mgonto/restangular/issues/85
- jQuery使用api获取typeform结果
- 使用API在我的网站Google-Map上显示搜索地址的纬度和经度
- 使用api在facebook页面上发布图片或状态
- 无法使用API-node.js从Google Drive下载文件
- 如何使用API从多个IMDB ID获取电影信息
- PHP中的Curl请求-使用API
- 使用 API 注册创建节点.js API 框架
- 使用 API javascript 设置 AngularJS 模板
- 计算使用API观看youtube视频的百分比
- 如何使用API URL的JSON.parse将JSON字符串更改为Javascript对象
- 使用API的Chargify问题:;不允许访问”;
- 如何使用API从SMTP服务器访问和提取电子邮件
- 使用API平台打开Chrome扩展
- 如何使用Api v3在谷歌地图上放置图像
- 使用数组对象从javascript使用api到javascript使用sightly
- 在javascript中使用API v3检索Google日历事件
- 使用 API 下载文件不起作用
- 使用 API v3.0 为特定视频创建 Youtube“喜欢”按钮
- 是否可以确定用户是否完成了使用 API 观看嵌入的 youtube 视频
- JWPlayer在使用API加载方法时无法在iPad / iPhone上播放