3分钟2个接⼝掌握游戏盾SDK接⼊
阿⾥云游戏盾是⾯向移动APP⽤户推出的⾼度可定制的⽹络安全解决⽅案,本⽅案中通过SDK的集成可以实现DDoS攻击的免疫和CC攻击的100%解决。
游戏盾⽬前在实际使⽤中可以达到的效果如下:
1、DDoS攻击防御可主动定位/隔离攻击者
游戏盾通过⼤量的节点部署结合SDK的调度数据,在发⽣DDoS攻击的时候能够准确告知您⽬前你游戏中的哪⼀个玩家ID、IP、设备号是恶意玩家,并进⾏主动隔离,您还可以跟具这些调度⽇志进⾏进⾏报案处理,对⿊客进⾏有效的打击。
可溯源是游戏盾最核⼼的优势,游戏盾具备对抗DDoS攻击的【反击】能⼒!
实际案例可以参考:
2、CC攻击防御100%解决,0误杀、0漏过
CC攻击⼀直是难以解决的⾏业痛点,在传统的⾼防IP、WAF模式下总会碰到误杀、漏过的问题,碰到协
议模拟类的攻击更是束⼿⽆策,对业务稳定性影响⾮常⼤。游戏盾的私有通信协议彻底改变了这⼀现状,通过动态的加密算法,每次数据传输都具备唯⼀性,只有⼲净的流量才能够到达您的业务服务器,0误杀、0漏过。
sdk3、防御成本⼤幅度降低90%
传统⾼防抵御T级别的DDoS攻击都在50万/⽉以上,对中⼩型的公司来说都是⽆法承受的,⽬前游戏盾推出了针对流量/⽇活计费的⽅式,不论您的业务规模⼤⼩,只要接⼊游戏盾的SDK,游戏盾都给您提供不设上限的攻击防御能⼒来保障您的业务,仅需6.5万/⽉起!降低防御成本90%以上!()
⼀、核⼼原理
通过服务SDK提供的服务本地化接⼝,将任意IP、端⼝的服务本地化,并且由SDK接管所有的通信流量,进⾏调度和加密传输,满⾜抗D、防C、流量加密等业务需求。
安全防御模式:每次连接远端的IP:PORT前,调⽤⼀次服务本地化接⼝,将服务本地化,后续使⽤返回的IP:PORT进⾏使⽤即可。
在访问原服务器前的流程变化如下:
原:客户端获取服务端IP和端⼝——>连接服务端
新:客户端调⽤SDK获取游戏盾IP和端⼝——->连接游戏盾IP和端⼝——>服务端
必须完整使⽤游戏盾返回的IP和端⼝,游戏盾返回的IP和端⼝⽰例如下:
游戏盾⽆限抗安全接⼊模式: 127.0.0.1 56382 (安全接⼊模式,端⼝随机)
注意:游戏盾模式返回的是本地local地址和随机端⼝,且端⼝具备⼀定的时效性(参考FAQ-3、完善⼼跳机制来适配)。
⼆、实例代码
String token = "UserId"; // 游戏内的玩家唯⼀ID,如果获取不到,可以传⼊⼀个默认值,定位恶意攻击者使⽤
String groupname = "Default.iE0454968L.ftnormal03ae" //游戏盾防御分组配置页⾯获取,⼀个游戏⼀个
//初始化
String appkey = "xxxxx"; //控制台获取
int ret = YunCeng.initEx(appkey, token); //这个接⼝只需要调⽤⼀次,重复调⽤⽆效
String s = String(ret); //s如果不等于0、游戏盾初始化失败
//华丽丽的分割线
//以下为TCP业务接⼊实例
//假设原业务为 tcp://121.35.123.21:8009
//基础参数,通过XX游戏的⼊⼝、接⼊XX服务器的XX端⼝
String dip = "gameserver-for-yxd.vivre" //需要在游戏盾⽆限抗防护⽬标中进⾏配置,对应的真实服务器为121.35.123.21
String dport = "8009" //根据实际需要进⾏传⼊服务器的真实业务端⼝
//返回参数
StringBuffer target_ip = new StringBuffer();
StringBuffer target_port = new StringBuffer();
//核⼼转化接⼝调⽤,此函数为游戏盾的核⼼函数
int ret = ProxyTcpByDomain(token, groupname, dip, dport, target_ip, target_port);
//调⽤结果,如果范围⾮0则为调⽤失败,可以⼀直重试
String String(ret);
//打印输出
msg_show.setText(s + " result ip:" + String() + ", port:" + String());
//经过游戏盾转化后的IP和端⼝,使⽤此IP和端⼝进⾏实际业务链接
g_dip = String(); //游戏盾转化后的IP
g_dport = String(); //游戏盾转化后的Port
//华丽丽的分割线
//以下为HTTP(S)协议的游戏盾接⼊实例
//假设原业务访问地址为http(s)://login.vivre/loging
String dip = "login-for-yxd.vivre" //需要在游戏盾⽆限抗防护⽬标中进⾏配置,且将login-for-yxd.vivre的DNS配置解析为127.0.0.1 String dport = "80" //HTTP业务为80、HTTPS业务为443、或者您实际的端⼝,例如 login.vivre:8080/login
//返回参数
StringBuffer target_ip = new StringBuffer();
StringBuffer target_port = new StringBuffer();
//核⼼转化接⼝调⽤,此函数为游戏盾的核⼼函数
int ret = ProxyTcpByDomain(token, groupname, dip, dport, target_ip, target_port);
//调⽤结果,如果范围⾮0则为调⽤失败,可以⼀直重试
String String(ret);
//打印输出
msg_show.setText("http(s)://login.vivre --> http(s)://" + String() + ":" + String());
//那么如何访问呢,拿到游戏盾返回的Port,并且和域名login-for-yxd.vivre进⾏拼接
//http(s)://login-for-yxd.vivre:48201/login 就等于是 http(s)://login.vivre/loging
//仅限当前客户端本地!!跨设备⽆效!
//可以解决HTTPS证书校验问题
//假设游戏盾故障,可以秒级切换到源服务
第⼀次调⽤需要300MS,结果缓存以后再次调⽤仅需要3MS,由本地直接返回。
三、相关问题FAQ
1、init接⼝在什么时候进⾏调⽤?能重复调⽤吗?
建议在游戏初始化的时候进⾏调⽤,不需要重复调⽤,仅需要调⽤⼀次。
2、如何判断游戏盾异常?
>Init如果返回⾮0,代表此⽤户调⽤游戏盾失败,可以⾛失败逻辑。 (判断游戏盾失效的唯⼀⽅式)
>getProxyTcpByDomain接⼝如果返回⾮0,仅代表此⽤户本次请求调⽤游戏盾失败,仅需多次尝试,尝试失败后提⽰客户关闭/重新进⼊游戏,尝试重启游戏进⾏判断。
3、DDoS攻击会导致节点⿊洞,玩家掉线,如何快速、准确的检查到业务异常?
此问题必须通过⼼跳检查机制进⾏识别,建议值为检查间隔3-5秒,检查到2次异常即⾛掉线重连逻辑,重新调⽤游戏盾。
此问题必须通过⼼跳检查机制进⾏识别
***因为DDoS攻击导致的TCP协议异常在安卓、IOS等环境下的差异性不⼀定会被异常捕获,⼼跳检查是最保险的机制。
4、如何验证游戏盾接⼊后的效果?
在游戏盾版本完成开发后, 请务必联系游戏盾团队进⾏DDoS攻击的模拟测试,来验证策略的有效性,保证接⼊的防护效果。
5、IOS的IPV6过审核⽀持吗?
⽀持的,您的业务不需要做兼容,游戏盾主动帮你完成了IPV6兼容,可以过审核。
6、真实IP的获取如何解决?
Linux:⽆需代码集成,请提供uname –a 的命令输出,在获取对应的内核模块。
Windows:需要代码集成,获取相关功能代码。
7、客户端上的HTTP(S)类业务(充值接⼝、HTTPAPI类)如何优雅的接⼊游戏盾?
参考:help.aliyun/document_detail/93282.html
客户端内的充值接⼝也可以完美接⼊游戏盾哦!!
8、主要适应客户,和场景
类、⽐特币交易所类、直播类等安全需求较⾼的APP类业务等。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论