我想将一个外部页面链接到一个新选项卡中,并将我自己的 css 应用于它,这会改变这个外部页面的总体布局。css 在另一台服务器中。
这可以做到吗?
我正在使用 php、jquery 和 Apache 服务器。
我想在我的服务器上使用 php 代理请求外部页面并添加 css 但可能,如果有解决方案,它会更有效。
谢谢!
将页面下载到您的服务器,应用 CSS,然后将页面显示给用户(代理)是执行此操作的唯一方法。如果该站点不安全并且具有可以注入的漏洞,则可以使用黑帽方式进行操作..但我怀疑这里是否有人会给您一种令人讨厌的方式来做到这一点+一旦被发现没有怀疑它会恢复到原来的 css 并修补漏洞。
如果可能,请考虑安全风险。这些天 CSS 非常强大,想象一下如果您可以更改 google.com 上的 CSS - Fun Times :D
不,它不能以代理以外的方式完成。
将 CSS 注入嵌入式 iframe(或者更一般地说,对子 iframe 执行任何操作)的能力将打开一个巨大的安全漏洞。
想象一下,您在我使用的网络邮件服务中显示一个 iframe,并对其进行大量重新设计,使我的“撰写回复”页面看起来像来自邮件服务的“确认密码”页面。当我天真地输入密码时,它会将我的密码通过电子邮件发送给受访者!
您可以通过使用浏览器插件或扩展来实现您想要的目标。访问一个网站应该需要零信任,但安装一个扩展通常确实意味着来自用户的一些信任,因此扩展比普通网页具有更大的自由度。
请注意,服务器代理获取不会发送用户的会话/身份验证 cookie,因此如果您尝试获取需要登录的站点(例如 Facebook),您将只能获取公共资源。
根据您想要实现的目标,可能会有更好的方法。如果您打算将它分发给许多用户broser plugin
,或者可能更容易创建,则UserScript
适用于Greasemonkey
/ Tampermonkey 之类的插件。另一种方法是创建一个bookmarklet
供用户在其浏览器栏中单击的。在这里看看这个:http: //benalman.com/projects/run-jquery-code-bookmarklet/它很容易创建。