如何将iframe转换为编码JavaScript 隐藏页面源码中的真实URL
解决方案
功能说明
你需要的iframe地址隐藏功能核心逻辑是将完整的iframe标签字符串做编码处理,页面加载时通过JS动态解码并插入DOM,静态页面源代码中不会直接暴露真实的src地址。注意该方案只能阻挡普通用户查看静态源码,无法阻止资深用户通过控制台抓包、调试JS拿到真实地址,前端没有绝对的内容隐藏方案。
完整实现代码
第一步:编码工具代码(本地运行生成加密内容)
你可以在本地运行这段JS代码,输入你的iframe参数,就能生成可以直接嵌入页面的加密代码:
// 输入你的iframe参数 const iframeConfig = { src: "你要隐藏的真实iframe地址", width: "100%", height: "500px", frameborder: "0", allowfullscreen: true }; // 生成完整iframe字符串 const iframeStr = `<iframe src="${iframeConfig.src}" width="${iframeConfig.width}" height="${iframeConfig.height}" frameborder="${iframeConfig.frameborder}" ${iframeConfig.allowfullscreen ? 'allowfullscreen' : ''}></iframe>`; // 转Base64编码 const encodedStr = btoa(unescape(encodeURIComponent(iframeStr))); // 生成最终嵌入页面的代码 const outputCode = ` <script> (function(){ var encoded = "${encodedStr}"; var decoded = decodeURIComponent(escape(atob(encoded))); document.write(decoded); })(); <\/script> `; console.log("生成的嵌入代码如下:"); console.log(outputCode);
第二步:使用生成的代码
把第一步输出的代码粘贴到你需要展示iframe的页面位置即可,静态查看页面源码时只会看到加密后的Base64字符串,不会出现真实的iframe地址。
进阶优化方案
如果想要提升破解门槛,可以做如下调整:
- 对解码逻辑做JS混淆,增加逆向难度
- 替换默认的Base64编码表为自定义编码表,避免用户直接用默认Base64解码规则拿到原始内容
- 增加域名校验逻辑,只有在你的业务域名下才执行解码操作,防止代码被其他人盗用
内容的提问来源于stack exchange,提问作者TravelWhere
相关产品推荐
相关产品推荐

