如何防止从浏览器看到图像但允许在桌面应用程序上

时间:2017-04-27 16:53:58

标签: c++ qt web

我正在开发一个连接到网站的桌面应用。我将用户个人资料图像存储在Web服务器的文件系统中,以便我可以通过URL访问它们,问题是我不希望有人可以从任何Web浏览器访问图像,例如chrome。

有没有办法可以通过URL访问图像并将其显示在我的桌面应用程序(使用qt构建)中,但也阻止从常规Web浏览器访问这些图像。

桌面应用用户无法看到图片中的网址。

2 个答案:

答案 0 :(得分:1)

  1. 您可以加密图片,这样只有您(您的应用程序)才能看到解密密钥。在确定加密图像后,解密并显示。在这种情况下,即使有人获得图像,您/她将只获得加密内容
  2. 您可以对图片请求进行基本授权(在网址中发送一些秘密令牌并在后端进行比较)

答案 1 :(得分:0)

另一种方法是在网络服务器中处理小网页。

请求图片网页。

请求向网页发送User-Agent信息。

根据User-Agent,您可以从网页发回回复。

请考虑以下示例:

QNetworkRequest request; 
request.setUrl(QUrl("YOUR IMAGE URL"));
request.setRawHeader("User-Agent", "YOUR APP NAME/1.0");

在网页中验证“您的应用名称”并发送有效回复。

使用QNetworkReply获取回复。

通过这种方式,您可以完全屏蔽Web服务器中的图像目录。