node.js - 将外部 URL 重写为内部 URL

标签 node.js apache mod-rewrite

我发现一个网站,他们将外部 URL 重写为内部 URL,通过这个技巧,他们能够避免 iframe 中的同源策略。 以下是他们如何做到这一点的一些示例:

External URL: http://stackoverflow.com
Internal URL: https://stackoverflow-com-m.surfly.com/HT/mj5qTc22vRI6M9mfrKULbCp//////////

External URL: http://www.facebook.com
Internal URL: https://facebook-com-m.surfly.com/www/ST/mj5qTc22vRI6M9mfrKULbCp//////////

External URL: http://www.bbc.co.uk
Internal URL: https://co-uk-m.surfly.com/bbc/www/HT/mj5qTc22vRI6M9mfrKULbCp//////////

External URL: http://www.google.de
Internal URL: https://google-de-m.surfly.com/www/ST/mj5qTc22vRI6M9mfrKULbCp//////////?gfe_rd=ctrl&ei=a5XuUueLN8yG8Qe8kIBI&gws_rd=cr

mj5qTc22vRI6M9mfrKULbCp是一个简单的 session 变量部分,但是 HTST部分会自动更改,我不知道为什么也不知道它意味着什么。

如何重写这样的 URL 并在我自己的域上加载外部网站?

最佳答案

您必须下载并处理页面中的链接,然后在 iframe 中显示重写的版本。

因此,例如,您必须替换:

  • 所有完整网址(http://...https://...)
  • 所有仅协议(protocol)网址 (//...)
  • 所有相对网址(/foo/barfoo/bar)

要真正做到正确,您还必须对图像和脚本执行此操作,包括替换脚本中的所有 URL。这是一个重大挑战。

此外,这很可能违反某些司法管辖区的法律或相关网站的使用政策。您应该考虑与律师交谈。

关于node.js - 将外部 URL 重写为内部 URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21514898/

相关文章:

php - 如何在 Linux 共享主机上启用 php_mbstring 和 php_exif 扩展

apache - 重写文件路径中的 RewriteRule 检查文件是否存在

php - 如何防止直接访问php页面但重定向时可以访问

用于提取组的 JavaScript 正则表达式迭代器

javascript - 如何使用 Sequelize.js 获取 MAX(id) GROUP BY 其他字段?

javascript - 如何在 moment.js 工作日计算中获取日期列表?

Apache docker 容器 - .htaccess 重写规则 404

node.js - 使用 GM() 和 NodeJS 制作马赛克图像

regex - 在 .htaccess 中仅从一个特定文件中删除 .php 扩展名

apache - .htaccess 动态授予访问权限(包括系统范围的文件)