开放出去给人用的 API,使用 HTTPS,并且打算使用 startssl,靠谱吗?

2015-07-15 03:55:15 +08:00
 qw7692336

是restful的API

给每个用户提供一个私有的key,用户在使用的时候,需要附带上这个key,用HTTPS的目的是为了使key不被抓包抓到。

部署在Apache的话,有没有什么需要注意的。

2522 次点击
所在节点    问与答
21 条回复
Septembers
2015-07-15 04:31:21 +08:00
这 都 是 必 须 做 的 基 本 工 作

另外建议使用nginx做"API网关"
chinalion
2015-07-15 06:58:50 +08:00
自签名的SSL不行么?
imlonghao
2015-07-15 07:54:10 +08:00
@chinalion 各种弹不信任,要多加代码不验证证书,可能会被中间人攻击
你以为你是12306
coolcfan
2015-07-15 08:03:54 +08:00
貌似一般都是靠https来保护……
有没有可能在http下,构建出即使被抓包也不会遭到用户身份盗用的restful api……
chinalion
2015-07-15 08:35:52 +08:00
@imlonghao 用浏览器访问的?
wy315700
2015-07-15 08:42:22 +08:00
@coolcfan 端对端加密,,,,
imlonghao
2015-07-15 08:56:03 +08:00
@chinalion 不是
chinalion
2015-07-15 09:11:38 +08:00
@imlonghao 那好像可以用自签名证书
imlonghao
2015-07-15 09:14:16 +08:00
@chinalion 那你用https的初衷就没有了
wesley
2015-07-15 09:18:07 +08:00
startssl的免费证书不能用于商业目的
wy315700
2015-07-15 09:26:25 +08:00
@imlonghao 自签名证书不是这么用的
应该是把自己的证书指纹加到代码里而不是不验证证书,理论上这样子更安全
chinalion
2015-07-15 09:31:19 +08:00
@imlonghao 自签名证书难道不能加密么
66450146
2015-07-15 10:22:47 +08:00
@wy315700 写到代码里面,那证书过期了咋整。。。
wy315700
2015-07-15 10:23:49 +08:00
@66450146
弄一个20年的证书,不怕过期。
66450146
2015-07-15 11:50:42 +08:00
@wy315700 服务器被入侵私钥被拿到了咋整?怎么 revoke?这些都解决以后其实还不如买别人的了
wy315700
2015-07-15 12:04:36 +08:00
@66450146
依赖系统内置根证书就容易出现系统里被植入一个根证书以后就完蛋了

服务器毕竟是可控的,客户端是不可控的
smileawei
2015-07-15 15:32:33 +08:00
额 也不贵吧 ,也就是9刀。如果还嫌贵就坑vmbox.co的3刀证书
finian
2015-07-15 15:56:02 +08:00
这个 key 还是会泄露的,比如反编译客户端,或者中间人攻击嗅探 HTTPS
qw7692336
2015-07-15 16:24:05 +08:00
@chinalion
@imlonghao
不是用浏览器访问
用户curl命令访问的话,同样会验证证书的授权情况。但不排除某种访问方式会跳过验证过程。
我只是希望可以给用户简单安全地使用。如果用户不进行授权验证的话,就有可能受到中间人攻击。

@coolcfan
http下就要靠更复杂的机制来保证安全性了

@wy315700
你说得很有道理,但是这种方法会增加使用复杂性,得考虑一下。
本来有想过用类似公众号的授权方式,但是用户用起来会比较麻烦。


@smileawei
如果免费实在不靠谱的话,可以考虑收费的。


@finian
这个key提供给用户后,用户部署在他们自己的服务器
finian
2015-07-15 16:27:45 +08:00
@qw7692336 用户是通过他们的服务器访问你们的 API 是么?如果是这样,你们的方案已经比较靠谱了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/205764

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX