“隐藏”的最佳实践JavaScript HTTP请求
Best practice for "hidden" JavaScript HTTP request?
我不太确定这个问题应该怎么表述,但我认为这更像是一个建议请求,而不是一个问题本身。
我们正在创建一个HTML5服务,让用户在完成一系列推广活动后获得奖励。这些优惠大多是视频广告观看。我们已经有一个实现的基于Flash,但HTML5我遇到更多的问题如何让请求调用验证合法看着视频广告。Flash界面,我们有一系列的HTTP请求的SWF,一些视频播放开始,中间和结束时,每一个这些请求是相互关联的,意义,一个需要下一个请求的响应,等等。大多数"隐藏"这个"算法"的逻辑都被轻微地隐藏在SWF二进制文件中,它几乎达到了它的目的。
然而,对于HTML5,我们必须依赖于世界可见的JavaScript和"隐藏"的逻辑是开放的。所以,我想这是一个关于如何处理这些案件的建议,这样一个熟练的人就不能(如此容易地)访问它并利用该服务以编程方式获得信任。对JavaScript进行模糊处理似乎可以有所帮助,但这并不能完全保护。
当然后端有一些额外的安全性(如频率上限,每个用户上限等),但由于我们的上限每天都清除,熟练的人仍然可以找到一种方法来获得所有可用的优惠,即使没有完成它们。
听起来你想要确保你的服务器能够区分用户以你认可的方式与你的UI交互而产生的请求和不以这种方式发生的请求。
这样的系统有许多攻击点。
- 检查JavaScript以找到事件处理程序并通过Firebug或其他工具调用它们。
- 检查代码中的密钥,并生成HTTP请求,而不涉及浏览器。
- 在浏览器中运行代码以编程方式生成事件。
- 使用第三方工具,使浏览器产生点击。
如果你有合理的解决方案仪表攻击(3和4),然后你可以看看有没有办法隐藏javascript函数从最终用户?获取秘密到客户端以允许您签署请求的方法。除此之外,混淆是阻止不太确定的攻击者利用的唯一(也是不完美的)方法,限速和UI事件日志可能是阻止确定的攻击者从大规模欺诈中获益的最佳选择。
您将无法阻止一个确定的攻击者(即使使用SWF,尽管它更加模糊)。最好的办法是确保:
- 规避你的措施在努力方面是昂贵的,也许通过使用计算昂贵的加密算法,所以他们不能仅仅设置一堆脚本来做到这一点。
- 收益是最小的(用户上限是如何减少收益的一个例子;如果你是在给分数,没关系;如果你要寄20美元的钞票,那你就倒霉了)
成本效益。
- HUE API JavaScript HTTP PUT请求返回;net::ERR_EMPTY_REPONSE”;
- JavaScript $http.get 一个 json 数组并将其存储在 localstorage 中
- 将 JavaScript Http Upload 脚本转换为 Curl 命令
- 从javascript Http请求获取Java List
- JavaScript HTTP GET 用于多个 URL
- PHP 不会在 JavaScript HTTP 请求的第一个页面加载时加载数据
- 在javascript http post请求之后处理不同的php响应
- Javascript http regex
- Javascript HTTP POST with JSON data
- Javascript Http Get Request error : NS_ERROR_FAILURE
- 用RxJs Observable封装基于Promise的JavaScript HTTP客户端
- JavaScript HTTP GET请求适用于Firefox和iPad Safari,但不适用于Mac OS Safa
- 如何在javascript http Get请求中发送数据
- 客户端在接收到"Location"后如何处理JavaScript ?HTTP报头
- Javascript HTTP客户端库
- 我如何使我的PHP API返回JSON到Javascript HTTP POST/GET请求
- Javascript HTTP GET and POST
- 返回带有承诺的javascript http请求循环
- Javascript http get success函数捕获错误响应
- Javascript http post into form