NutzCN Logo
问答 nutz.cn 代码片段中,怎么只用4个字段进行 sign呢? 如果被修改的数据是 单价 ,价格呢?
发布于 2839天前 作者 sunhai1988 1541 次浏览 复制 上一个帖子 下一个帖子
标签:

nutz.cn 代码片段中,怎么只用4个字段进行 sign呢? 如果被修改的数据是 单价 ,价格呢?

if (req.getHeader("Api-Version") != null) {
			log.debug("api version = " + req.getHeader("Api-Version"));
			String loginname = req.getHeader("Api-Loginname");
			String nonce = req.getHeader("Api-Nonce");
			String key = req.getHeader("Api-Key");
			String time = req.getHeader("Api-Time");
			if (Strings.isBlank(loginname) || Strings.isBlank(nonce) || Strings.isBlank(key) || Strings.isBlank(time)) {
				return BaseModule.HTTP_403;
			}
			if (!yvrService.checkNonce(nonce, time)){
				return BaseModule.HTTP_403;
			}
			at = yvrService.accessToken(loginname);
			if (Strings.isBlank(at)) {
				return BaseModule.HTTP_403;
			}
			String tmp = Strings.join(",", at, loginname, nonce, time);
			String _key = Lang.sha1(tmp);
			log.debug("tmp="+tmp);
			log.debug("_key=" + _key);
			log.debug(" key=" + key);
			if (!_key.equals(key)) {
				return BaseModule.HTTP_403;
			}
			log.debug("api access token check ok");
		} 
1 回复

是的,这个安全性还不够好,没有对参数的部分进行检查.

还有一个原因是, nutz.cn的api接口只能是https, 从http协议层确保传送不会被监听到.

看来得设计个v3版了

添加回复
请先登陆
回到顶部