javascript - 如何保证服务器端返回的img不被拦截

标签 javascript flash encryption

在我们的应用程序中,我们有一个 Web 服务,它将根据参数将图像返回给客户端。

现在,我们要确保图像不能被未经许可的用户使用,也不能通过网络被拦截。

所以我们要在服务器端对图像进行加密,当客户端得到图像时,应该对其进行相应的解密。然而我们的应用程序是基于浏览器的。看来在浏览器中我们不能使用javascript来解密图像流。

假设每个调用该服务的客户端都是绝对安全的。

我们尝试在页面中使用隐藏的flash,它可以将图像解密并保存到本地,然后在页面中显示它们,这将使用js和flash之间的通信。

但是我们必须使用c#或java以外的flash语言来解密图像。

所以我想知道是否有任何解决方案可以满足我的要求?

另外是否还有其他更好的方式?

更新:

我们的图像服务器服务:

http://xxx/getImage?row=1&col=3

此网址是公开的,因此任何人都可以使用不同的参数使用此服务。

即使我们添加这样的关键参数:

http://xxx/getImage?row=1&col=3&key=SDSGSDSKDFEKYESLWQODLSFKDS

然后我们遇到两个问题: 1)即使我们将 key 与ip或mac地址绑定(bind),其他人也知道这个 key 如何?

2)用户直接抓http包怎么样?那么他不需要知道任何参数,他就可以拦截整个图像流。

更新2

是否有同时使用服务器端和客户端的解决方案?

也就是说,用flash行不行?

最佳答案

通过 HTTPS(而不是未加密的 HTTP)提供图像以及调用图像的整个页面。

无需涉及任何类型的客户端编程。浏览器内置 SSL 加密支持。

how about other people know ths key,even we bind the key with the ip or mac addresss.

他们没有。这就是 key 的意义所在。

How about the user grap the http package directly? Then he do not need know any parameter,he can intercept the whole image steam.

他们不能。这就是 SSL 加密的意义所在。

关于javascript - 如何保证服务器端返回的img不被拦截,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8489673/

相关文章:

flash - 在AS3项目中使用大量声音

asp.net-mvc - 在 ASP.NET MVC 中加密 URL 中的 id

php - Mysql数据加密

android - 以编程方式检查共享首选项 key 是否已加密

javascript - OpenLayers3/GeoServer 的轮廓功能

javascript - 未显示警报弹出窗口

javascript - AngularJs 从列表动态创建指令

javascript - Date.js parseExact() 在作为数组传入时不解析 4 位数年份

Java 市场份额 : what version of Java runtime do most people have? 我是否需要使用 Flash 才能获得 90% 的市场份额?

flash - html5 视频是否支持手机(symbian、android、iphone)开箱即用的 flv?