解决跨网QNAP的ddns无法正常工作的问题

解决跨网QNAP的ddns无法正常工作的问题,第1张

问题:你懂的跨网情况下,QNAP威联通外网服务器得到的访问ip不是路由器ip,因此ddns的映射ip有误,无法正常工作。

解决步骤:

1 记录路由器dnsmasq查询日志

root@LEDE:~# vi /etc/dnsmasqconf

加入:

root@LEDE:~# /etc/initd/dnsmasq restart

2 获取QNAP api服务器的ip

在QNAP myQNAPcloud云服务 > My DDNS管理界面中刷新ddns,QNAP发送api查询请求,在/tmp/dnslogtxt 中记下访问的cname域名和所有ip

写此篇时的cname:core2apimyqnapcloudcom
对应ip:18210138207  34196214117  34230144114  5220064231 5415219422  5420914111

201961对应ip变了:3422421721 342006929 52201140187 5220552244 17412989179 5415215481

3 白名单例外

把上述ip设置到白名单额外被忽略ip里

你开放的接口真的就很安全吗,看看有没有做到如下几点

1请求身份验证

2请求参数校验

3请求是否唯一

4请求次数限制

请求身份验证
基于 AccessKey:为接口调用放分配AccessKey和SecretKey(不参与传输,只用于本地接口加密,不能泄露)

基于token身份验证:
1用户登录提供认证信息(如:账号密码)服务器验证成功后将用户信息保存到token内并设置有效期,再返回token给调用方
2调用方保存token,并在有效期内重新换取token,保证token是有效的
3服务器验证token有效性,无效则拦截请求返回错误信息,反之则从token内获取用户信息进行后续 *** 作

请求参数校验
1校验参数合理性(如:参数类型,参数长度,参数值校验)
2防止XSS,SQL注入(解决方案:过滤敏感字符或直接返回错误信息)
3校验参数可靠性是否被篡改(可以将参数以特定格式排列+秘钥组成字符串,在进行MD5或SHA签名)

请求是否唯一
前面第3点解决了请求参数被篡改的隐患,但是还存在着重复使用请求参数伪造二次请求的隐患

timestamp+nonce方案

nonce指唯一的随机字符串 ,用来标识每个被签名的请求。通过为每个请求提供一个唯一的标识符,服务器能够防止请求被多次使用(记录所有用过的nonce以阻止它们被二次使用)。

然而,对服务器来说永久存储所有接收到的nonce的代价是非常大的。可以使用timestamp来优化nonce的存储 。

假设允许客户端和服务端最多能存在15分钟的时间差,同时追踪记录在服务端的nonce集合。当有新的请求进入时,首先检查携带的timestamp是否在15分钟内,如超出时间范围,则拒绝,然后查询携带的nonce,如存在已有集合,则拒绝。否则,记录该nonce,并删除集合内时间戳大于15分钟的nonce(可以使用redis的expire,新增nonce的同时设置它的超时失效时间为15分钟)。

请求次数限制

某些资源我们需要限制用户的请求次数,同时也为了防止非人为 *** 作可能导致系统的崩溃
实现思路如下:
假如我们允许用户每秒钟最多10次请求,超过10次则返回“手速太快了,慢点把。。”
这里我们使用redis辅助我们实现:

以用户IP为key,请求次数为value,有效时间为1秒
用户在每秒的第一次访问的时候,此时我们的redis是没有key为用户ip的数据的(因为失效了,或者第一次请求)所以我们要初始化当前请求用户的ip为keyvalue为0到redis数据库

当用户在1s内再次发起请求我们就将此ip的请求次数+1,并判断请求次数是否已近>=10
>=10则返回给用户手速太快了!请稍后重试否则继续执行后续 *** 作

具体实现代码如下:


如有疑问可在下方留言,我会尽快答复,或者关注公众号 程序员MuziDong 随时了解新的动态


如果你在使用Steam API时注册过,但是现在无法使用,可能有以下几种原因:
Steam API密钥过期了:Steam API密钥有一定的有效期限,如果你的密钥过期了,你需要重新生成一个新的密钥。
Steam API密钥被删除了:如果你的密钥被删除了,你需要重新注册并生成一个新的密钥。
Steam API密钥被禁用了:如果你的密钥被禁用了,你需要联系Steam支持团队了解更多信息。
Steam API密钥被限制了:如果你的密钥被限制了,你需要联系Steam支持团队了解更多信息。
Steam API服务器出现了问题:如果Steam API服务器出现了问题,你可能无法访问API。在这种情况下,你需要等待Steam支持团队解决问题。
如果你无法确定问题的原因,请联系Steam支持团队进行帮助。

百度网盟推广API是百度推广API的一项服务内容。百度网盟推广API服务是百度网盟推广系统对外开放的程序接口,开发人员能够通过API与百度网盟推广平台服务器直接交互,获取标准网盟推广API服务,更科学有效地管理网盟推广账户。目前百度推广API推出的服务有搜索推广API和网盟推广API。

百度网盟推广API适用于谁?

百度网盟推广API服务主要适用于百度网盟推广的大型客户和第三方。包括搜索引擎营销商、代理机构和其他管理多个客户账户或大型推广系列的在线营销专家。由于使用百度网盟推广API需要技术知识和编程技能以开发客户端程序,因此还需要客户或第三方具备编程知识或聘有开发人员。

使用百度推广API服务目前是免费的,但也不是无限制的。百度为API用户限定了使用配额,以更合理的分配资源。当用户的配额用完之后,在获得新分配的配额之前,用户将无法使用API提供的服务。

申请百度网盟推广API需要具备哪些条件?

百度网盟推广API主要面向大型客户和第三方,因此暂不对普通开发人员和用户开放。想要申请网盟推广API的用户必须具备一定的账户规模和技术实力。百度会根据用户的账户累计投入、日均消费、配备的技术人员实力等因素进行综合评估,判断您是否具备申请网盟推广API的条件。

您可以根据以下内容初步判断自己是否具备申请条件:

1)累计在百度续费3次以上;

2)网盟账户累计投入RMB5万元以上;

3)网盟账户日均消费RMB500元以上(数据期为最近1个月);

4)用户单位自身拥有2名以上的技术人员,具备WebService项目开发经验。

如果已经是百度搜索推广API的用户,可不受上述申请条件限制,直接向百度申请开通网盟推广API。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zz/12671928.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2025-08-27
下一篇2025-08-27

发表评论

登录后才能评论

评论列表(0条)

    保存