【发布时间】:2016-04-07 15:04:24
【问题描述】:
我们开发了一个 Javascript 文件供客户使用。 Javascript sn-p 对其运行的网站进行截图,然后通过 jQuery.post() 将其发送回我们的服务器
我们行业的性质意味着我们必须确保文件不会被客户篡改。
因此,挑战在于我们需要确保屏幕截图是由托管在我们服务器上的 javascript 文件生成的,而不是被复制或以任何方式被篡改的文件。
我知道我可以使用以下方法获取脚本位置:
var scripts = document.getElementsByTagName("script"),
src = scripts[scripts.length-1].src;
但是,如果客户篡改了 SRC 的那部分,这将无济于事。
我可以采用哪些方法来确保:
1) 帖子是由我们服务器上托管的 javascript 文件制作的
2) javascript 没有以任何方式被篡改。
【问题讨论】:
-
1) 您只能验证请求标头以确保它来自哪里2) 您永远无法验证 100% 客户端Javascript ..这是整个过程的一部分。 3) 这更适用于 SecurityExchange IMO。
-
您基本上必须接受客户端处于客户端控制之下而不是服务器。
-
您能否对代码进行模糊处理,并在帖子中将脚本内容的副本作为文本发送,然后将其与您服务器上的版本进行比较以确定它是否被篡改? obfuscate js
-
@JeramiahHarland - 我认为这在技术上是行不通的,有人可以用预期的脚本替换发送脚本副本的代码部分。无论如何,我们已经对脚本进行了混淆。
标签: javascript jquery ajax security tampering