我有一个网站,允许用户检查他们的统计数据(上传的文件数量,他们有多少文件,配额,访问类型等)
我在我的站点上创建了一个section: api.domain.com
这可以通过curl或web浏览器访问,因为我正在返回json对象或xml(取决于用户偏好)
我的问题是:我应该使用user/pass限制访问还是应该创建用户文件的哈希?
例如:场景1:
用户创建一个php curl发送用户,并通过post或curl认证传递,并获得结果,解析它等…
对我来说,这是安全的,但如果用户更改了他们的通行证,则必须维护他的脚本
场景2
用户访问像:api.domain.com/j355HGssgf3HESAjh45jusf4325GSj5hbsHhdh5HGHFS3732he4548475wbe3447nSNe5XfgjhGJ
这样的文件,然后访问数据
这个,不用维护
这是我的想法。
如果您返回未找到的页面或错误消息(具有良好的200 OK状态),当向您的页面发出请求时,它可能会向机器人或不可信的人发送关于他们可以得到什么的线索,并一次又一次地尝试…
另一方面,如果你发送一个访问拒绝,比如401,或者更好的是500错误代码来模拟服务器错误,这些机器人或不可信的人可能会永远消失。
在这种情况下,我会说用户/密码方法更安全一点。现在,当您检查邮件时,您会信任仅仅输入一个大字符串(如场景2)吗?或者你的银行账户信息?
如果是我,我会给每个帐户创建唯一api密钥的能力,
api.domain.com/?key=<API.KEY>
为了更安全的措施,你可以使它只接受通过post方法与API密钥的连接。如果通过get连接,则显示错误等
那么即使他们更改了他们的通行证/用户名,也不会影响他们的api密钥