我正在使用第三方API,它会在公共网址上向我们提供数据。我希望这些数据在我的网站上,而无需用户知道获取数据的确切位置。
实施例: 要从此网址获取的数据:https://example.com/1477116779.16443511_0.mp3 数据显示在:www.zigsaw.in/telephonicinterviews/1477116779.16443511_0.mp3
我尝试使用IFrame
<iframe src="https://example.com/1477116779.16443511_0.mp3" width="100%" height="100%" frameborder="0" scrolling="no" />
但它允许“在新标签中打开链接”,从而揭示原始页面来源
背景:我们是一家招聘创业公司,不希望那里的人知道我们的小jugaad。最终,他们会知道,但我更喜欢3-4个月的开端。
P.S。 :下载数据&amp;在我的服务器上传它也是一个解决方案,但我不希望不必要的负担我的托管。由于这些是音频文件,因此需要很大的空间。
答案 0 :(得分:2)
没有针对该问题的HTML解决方案 - 您可以将URL重写到您的服务器,但是您需要一个脚本来获取原始URL并显示数据 - 类似于:
<?php
header('Content-disposition: attachment; filename=filename.mp3');
header('Content-type: application/octet-stream'); // adjust this to your real fileType
header('Content-type: audio/mpeg'); // use this for mp3
echo file_get_content('http://your-url.com/123');
?>
然后链接到此脚本 - 瞧 - 用户只能看到您的网址,但不会看到原始网址。脚本正在传递数据。
答案 1 :(得分:1)
您可以禁用该元素的右键单击,但这不会阻止某人在inspect element
标签中看到该网址,甚至无法阻止在原始html / {{1}页面中查看该网址}。
因此,要禁用右键单击iframe元素,请使用此方法。 (按钮1是正常点击,2是右键单击。)
page source
答案 2 :(得分:1)
如果您使用Nginx作为Web服务器,则可以在服务器级别代理请求。创建一个子域,充当API的代理。
简单配置:
http {
sendfile on;
keepalive_timeout 2000;
server {
listen 80;
server_name data.example.com;
location / {
proxy_pass https://www.zigsaw.in;
proxy_pass_request_body on;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
}
阅读Nginx文档,了解有关ngx_http_proxy_module。
的更多详细信息