检测Ajax调用中的Javascript篡改
我们有一个Javascript文件,我们已经为我们的客户开发使用。Javascript代码片段截取运行它的网站的屏幕截图,然后通过jQuery.post()将其发送回我们的服务器 我们行业的性质意味着我们必须确保文件不会被客户篡改 因此,我们面临的挑战是,我们需要确保屏幕截图是由服务器上托管的javascript文件生成的,而不是被复制或以任何方式篡改的文件 我知道我可以使用以下方法获取脚本位置:检测Ajax调用中的Javascript篡改,javascript,jquery,ajax,security,tampering,Javascript,Jquery,Ajax,Security,Tampering,我们有一个Javascript文件,我们已经为我们的客户开发使用。Javascript代码片段截取运行它的网站的屏幕截图,然后通过jQuery.post()将其发送回我们的服务器 我们行业的性质意味着我们必须确保文件不会被客户篡改 因此,我们面临的挑战是,我们需要确保屏幕截图是由服务器上托管的javascript文件生成的,而不是被复制或以任何方式篡改的文件 我知道我可以使用以下方法获取脚本位置: var scripts = document.getElementsByTagName("scri
var scripts = document.getElementsByTagName("script"),
src = scripts[scripts.length-1].src;
但如果客户机篡改了SRC的这一部分,这将没有帮助
我可以采用什么方法来确保:
1) 这篇文章是从我们服务器上托管的javascript文件制作的
2) javascript没有被任何方式篡改。简短回答:
但同样,这并不能阻止坚定的黑客找到漏洞。1)您只能验证请求头以确保它来自何处2)您无法验证100%的客户端Javascript。。这是整个过程的一部分。3) 这更多是针对SecurityExchange IMO的。您基本上必须接受客户端受客户端控制,而不是服务器。您是否可以混淆代码,并在post中以文本形式发送脚本内容的副本,然后将其与服务器上的版本进行比较,以确定其是否被篡改@JeramiahHarland——我不认为这在技术上是可行的,因为有人可以用预期的脚本替换发送脚本副本的代码部分。我们已经混淆了脚本。1)您只能验证请求头以确保它来自何处2)您无法验证100%客户端Javascript。。这是整个过程的一部分。3) 这更多是针对SecurityExchange IMO的。您基本上必须接受客户端受客户端控制,而不是服务器。您是否可以混淆代码,并在post中以文本形式发送脚本内容的副本,然后将其与服务器上的版本进行比较,以确定其是否被篡改@JeramiahHarland——我不认为这在技术上是可行的,因为有人可以用预期的脚本替换发送脚本副本的代码部分。无论如何,我们已经混淆了脚本。关于#1-不是我的专长,但你不能签署帖子请求。我想知道的是,是否可以通过某种独特的标记(在短时间内有效)嵌入到JS中,每次加载都经过我们的服务器授权,然后在发送屏幕截图时在服务器端再次确认。你认为这可以确保请求来自我们的javascript吗?@aaroncatlin:简短回答:仍然没有。你的javascript可以做任何事情,其他一些代码假装是你的javascript可以做的。关于#1-不是我的专长,但是你不能签署POST请求吗?我想知道的是,在每次加载时,是否可以在JS中嵌入某种独特的令牌(在短时间内有效),该令牌由我们的服务器授权,然后在发送屏幕截图时在服务器端再次确认。你认为这可以确保请求来自我们的javascript吗?@aaroncatlin:简短回答:仍然没有。javascript可以做的任何事情,其他一些假装是javascript的代码都可以做。