我很想知道在网页上添加水印,例如互联网提供商的标志。我不是要求HTML或CSS的代码示例。我在考虑代理服务器,它会为用户试图访问的任何网页添加水印。当用户请求HTTPS网站时,代理服务器应该如何表现?除了我可以尝试的代理服务器之外还有其他方法吗?
感谢所有答案
答案 0 :(得分:0)
总结:你真的不想这样做。
幸运的是,只有一种方法可以做到,而且它很丑陋,不可靠和不安全。您必须将代理配置为充当HTTPS终结器,该终结器拦截从客户端建立的连接并创建到目标站点的新连接。现在,您可以在将数据发送到客户端之前修改数据。
但是,客户端希望使用正确的证书签名加密连接。您没有此证书,因此所有浏览器都将终止连接,或者如果您使用自己的证书重新签名,则会抱怨证书无效。这将导致每个客户端出现巨大的错误消息,因此这将是一个问题。
您可以通过在对所有站点有效的所有客户端计算机上安装新的自签名根证书来避免这种情况,并使用此证书对数据进行签名。现在,您的客户将接受该连接,并将愉快地显示修改后的网站。
但是,现在您已经打破了TLS隐含的信任链,您现在全权负责客户端与目的地之间的安全性。当我连接到我的银行时,TLS的存在确保了我a)连接到我银行的真实网站并且b)没有人可以拦截我的,例如登录详细信息。你已经破坏了A和B,因为我不再相信我已经连接到我打算访问的真实网站,你或任何恶意的第三方可以通过滥用/拦截和阅读我和我的银行之间的流量黑客攻击您的代理服务器。
此外,使用像HTTP Public Key Pinning这样的技术,网站和浏览器都会针对防火墙供应商,AV公司和ISP提出这样的不良想法。因为这就是这个,一个非常糟糕的主意。
拜托,请不要这样做。