注入javascript代码的正确方法?

时间:2016-04-18 15:05:16

标签: javascript web proxy

我想创建一个具有类似translate.google.comhypothes.is类似功能的网站:用户可以输入任何地址,并使用其他菜单打开网站。我猜这是通过一些中间件 - 代理解决方案完成的,并在响应中注入了javascript,但我不确定。你知道如何实现相同的功能吗?它如何与安全(https)站点一起使用?

非常感谢

1 个答案:

答案 0 :(得分:0)

服务器获取整个站点,解析源代码,注入代码,然后将其发送回请求客户端。

它适用于SSL,因为它是两个单独的请求 - 用户看不到发送到端点的请求。

证书有效,因为它是在谷歌的域名下提供的。

为了实际实现这样的事情可能会非常复杂,因为:

  • 您正在解析的HTML不一定符合您的期望,甚至有效
  • 您转发给客户端的内容可能会引用具有相对URI的资源。这意味着您还需要拦截这些请求并提取资源(图像,外部css,js等)并将它们提供给客户端 - 并重写URL。
  • 通过注入任意javascript来打破内容非常容易。您需要注意包含注入的代码,并且不会干扰站点上的任何现有代码。
  • 像这样的实现通常会出现非明显的安全问题,这通常会导致XSS攻击。