API安全实现php


api security implementation php

我有一个网站,允许用户检查他们的统计数据(上传的文件数量,他们有多少文件,配额,访问类型等)

我在我的站点上创建了一个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密钥