加密 iframe 控件的 src 属性

Posted

技术标签:

【中文标题】加密 iframe 控件的 src 属性【英文标题】:Encrypting src attribute of iframe control 【发布时间】:2015-02-14 10:53:51 【问题描述】:

我正在使用 iframe 从一个临时位置加载一个 pdf 文件,如下所示

<iframe id="myPDF"   src="Config\Temp\tmp_report_0.pdf"></iframe>

这会将 pdf 文件加载到 iframe 内的浏览器窗口。 我的问题是,当用户右键单击并从浏览器中选择“查看源代码”时,如何隐藏这个“src”值对用户可见。

这里的目的是对用户加密/隐藏“src”值。 有什么建议吗?

【问题讨论】:

【参考方案1】:

您的 PDF 是静态的还是动态的? 如果是动态的,那么建议制作生成 pdf 并返回 url 的 httphandler。然后使用 javascript 添加 src 属性/修改 src 属性。此外,可以使用 Javascript 调用处理程序。如果用户使用浏览器的开发者工具栏来检查元素,这仍然不会被隐藏。

【讨论】:

这就是我说的,你不能隐瞒。你可以封装它。【参考方案2】:

您可以使用通用处理程序从位置隐藏实际文件。

在您的处理程序中,您根据 url 参数提供文件。这是一个基本的例子:

 <iframe id="myPDF"   src="OpenReport.ashx?ReportId=2129938212"></iframe>

现在您可以/必须加密 url 参数以避免任何人下载您的所有报告。

下载文件的处理程序示例:ASP.NET file download from server

从中删除包含attachment; filename= 的所有行,以便将文件加载到 iframe 内部。当然你可以找到很多其他的例子。

【讨论】:

【参考方案3】:

您可以使用 SECURITY 属性。

<IFRAME ID="myPDF"
        SECURITY="restricted"  
        WIDTH="100%"
        HEIGHT="100%" 
        SRC="Config\Temp\tmp_report_0.pdf" />

或查看此链接 Hide SRC tag

【讨论】:

这不会隐藏查看源代码

以上是关于加密 iframe 控件的 src 属性的主要内容,如果未能解决你的问题,请参考以下文章

Spring在属性文件中加密和解密API密钥

加密会话(SSL) Cookie 中缺少中Secure属性

iframe如何传值给父iframe

仅使用提供的 src 属性定位 iframe

delphi中有没有啥函数或控件是直接进行数据加密、解密的

Mobile Safari 和 iFrame src 属性