Veneris

Veneris

V2EX 第 296712 号会员,加入于 2018-03-05 13:48:07 +08:00
今日活跃度排名 659
1 G 73 S 92 B
根据 Veneris 的设置,主题列表被隐藏
二手交易 相关的信息,包括已关闭的交易,不会被隐藏
Veneris 最近回复了
54 分钟前
回复了 Geekerstar 创建的主题 Docker 使用 Docker 部署 MySQL 对性能有没有损耗呢?
对于大多数业务场景来说,业务有限,但仍不建议在 docker 中跑,docker 适合跑需要横向扩展得无状态的服务
18 小时 39 分钟前
回复了 yongSir 创建的主题 分享发现 wx 的产品是要多 sb 才能想出这样反人类的操作
这个功能都很多年了感觉,拖动到最下删除挺方便的,当然也可以点图片进入编辑页之后,右上角也能删除,你想要的应该是每个缩略图上都带个删除吧,感觉不太适合多图场景
@luzhh #14 需要在医院吃辣给医生看看吗,再问一下这个药是喷过以后就好了不用喷了还是得一直喷,谢谢
我倒不是一点辣不能吃,但是稍微到了中辣就这样,而且涕泗横流。。。
@LeeReamond #10 以我们当时的业务来说,没这么多第三方调用,加上一般这种时间戳会要求 10s ,不会说客户端和服务器时差 3 分钟还允许调用,所以 redis 其实压力不大,但我也不知道大厂的这种业务是什么架构,只是说实现了一样的功能
@Richard14 #8 可以把这几个参数拼接成 key ,签名为 value ,使用 redis 做判断 key 存不存在就可以了,我们当时的业务来说,没什么太大开销。第二个问题的话,除了 签名校验,重放攻击校验,还有一个时间校验,要求 调用发起方 与 服务器 时差在 10s 内,两个目的,一个就是防止你说的这个情况,一个是 redis 里的 key 可以设置 10s 过期,防止大量堆积。

步骤来说,首先判断时间,时差过大直接拒绝,时差在误差以内,通过拼接的 key 是否在 redis 中存在来判断是否重放攻击,是的话拒绝,否的话,再校验签名,在转发到对应的业务层。
我之前实现过这个逻辑,https://github.com/viticis/API-Signed

其实就是 签名 = 算法 ( appId + 接口 + 时间戳 + 随机数 )
四个参数只要有一个有一点点变动,签名就完全是不一样的了。

那么可以认为,同一个 appId (即同一个第三方用户),在同一毫秒内,调用同一个接口,使用了同一个随机数的情况下,大概率为重放攻击,只需要判断 appId -> 签名 在缓存中有无对应关系即可。
@FrankAdler #5 我昨晚在自己服务器部署了一下,管理员建立资产时候可以选择终端类型,xterm ,vt100 之类的,其他的是可以补全的
11 天前
回复了 vicalloy 创建的主题 问与答 初创公司未认缴的股权要不要
未认缴 = 负债
@Veneris #1 刚看到右上角一排按钮有文件,不好意思
关于   ·   帮助文档   ·   API   ·   FAQ   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   4032 人在线   最高记录 5497   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 10ms · UTC 02:33 · PVG 10:33 · LAX 18:33 · JFK 21:33
♥ Do have faith in what you're doing.