我不确定如何制定问题,但我认为这更像是一个建议请求,而不是问题本身。
我们正在构建一个HTML5服务,用户可以通过该服务获得奖励(奖励,在社交游戏术语上)以完成一系列优惠。这些优惠大部分都是视频广告观看。我们已经有了这个内置Flash的实现,但对于HTML5,我遇到了一些关于如何进行请求调用来验证合法观看视频广告的问题。在Flash界面上,我们有SWF发出的一系列HTTP请求,有些在视频播放开始时,在中间和结尾,这些请求中的每一个都是相互关联的,这意味着,一个是在下一个请求中需要等等。“隐藏”这个“算法”的大多数逻辑都隐藏在SWF二进制文件中,它几乎可以满足它的目的。
然而,对于HTML5,我们必须依赖于世界上可见的JavaScript,并且“隐藏”逻辑是开放的。所以,我想这是一个关于如何处理这些案件的建议的呼吁,以便技术人员不能(如此容易地)访问它并利用该服务以编程方式获得信誉。混淆JavaScript看起来似乎有所帮助,但绝不能完全保护。
后端当然有一些额外的安全性(如频次上限,每个用户上限等),但由于我们的封顶每天都会清除,技术人员仍然可以找到一种方法来获得所有可用优惠的信用,即使没有完成它们。
答案 0 :(得分:1)
听起来您希望确保您的服务器能够区分用户与您之间的UI交互而发生的请求,这些请求是您批准的,而这些请求并非以这种方式发生的请求。
这样的系统有很多攻击点。
如果你有合理的仪器攻击解决方案(3和4),那么你可以查看Is there any way to hide javascript functions from end user?如何将秘密传入客户端,以便您签署您的请求。除此之外,混淆是阻止一个不太确定的攻击者进行任何攻击的唯一(并且不完美)方式,并且速率限制和UI事件记录可能是阻止确定的攻击者从大规模欺诈中受益的最佳方式。
答案 1 :(得分:0)
您将无法阻止确定的攻击者(即使使用SWF,但它更加混淆)。你最好的办法是确保:
成本效益。