- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在Firefox或Chrome浏览器中,我想阻止私人网页进行传出连接,即,如果URL在浏览器选项卡中以http://myprivatewebpage/或https://myprivatewebpage/开头,则必须限制该浏览器选项卡,以便允许仅从http://myprivatewebpage/或https://myprivatewebpage/加载图像,CSS,字体,JavaScript,XmlHttpRequest,Java applet,Flash动画和所有其他资源,即<img src="http://www.google.com/images/logos/ps_logo.png">
(或相应的<script>new Image(...)
不能加载该图像) ,因为它不在myprivatewebpage上,所以我需要一个100%安全的解决方案:即使在myprivatewebpage之外,也无法访问单个资源,即使可能性很小,也不能访问除myprivatewebpage之外的其他网页上的资源加载限制,例如
请注意,我假设myprivatewebpage的用户愿意合作以保持网页的私密性,除非这对他们来说太麻烦了。例如,他们很乐意安装一次Chrome或Firefox扩展,并且如果看到错误消息指出拒绝对myprivatewebpage的访问,除非他们在支持的浏览器中安装了扩展,否则他们不会被冒犯。
我之所以需要此限制,是为了使myprivatewebpage真正保持私有状态,而又不将其使用的任何信息透露给其他网页的网站管理员。如果允许使用
http://otherwebpage/,则将对myprivatewebpage的使用记录在Google
ps_logo.png
的access.log中,因此Google的网站管理员将获得一些有关如何使用myprivatewebpage的信息,我不希望这样。 (在这个问题上,我对限制是否合理不感兴趣,而仅对技术解决方案及其优缺点感兴趣。)
我的想法如何实施限制:
不要施加任何限制,只需依靠
http://www.google.com/images/logos/ps_logo.png。 (这没有提供必要的保护,相同的原始策略允许所有图像通过。)
更改服务器上的Web应用程序,使其生成HTML,JavaScript,Java applet,Flash动画等,这些应用程序永远不会尝试在myprivatewebpage之外加载任何内容。 (在复杂的Web应用程序中的任何地方,尤其是用户生成的内容,都很难做到万无一失。)
使用服务器上的HTML输出过滤器对网页进行过度消毒,即删除所有
<script>
,
<embed>
和
<object>
标记,限制
<img src=
,
<link rel=
,
<form action=
等的目标,以及限制CSS文件中的链接。 (如果我能正确记住所有HTML标记,则可以避免所有不需要的资源,例如,我一定不要忘记
<video>
。但这太严格了:它删除了所有动态网页功能,例如JavaScript,Java applet和Flash动画;没有这些大多数Web应用程序都没有用。)
清理网页,即在Web服务器中添加HTML输出过滤器,以从生成的HTML中删除所有有问题的URL。 (这并不是万无一失的,因为可能会有一个棘手的JavaScript生成不允许的URL。它也不能防止Java小程序和Flash动画加载的URL。)
安装一个HTTP代理,该代理基于URL和HTTP引荐来源阻止请求,并通过该HTTP代理强制所有浏览器流量(包括myprivatewebpage,otherwebpage,google.com)。 (这会减慢除myprivatewebpage之外的访问量,并且如果XmlHttpRequest(),Java applet或Flash动画可以伪造HTTP Referer,则可能无法正确保护它。)
查找或编写Firefox或Chrome扩展程序,该程序可拦截所有传出的连接,并根据选项卡的URL和连接的目标URL阻止它们。我在
same origin policy和
https://developer.mozilla.org/en/Setting_HTTP_request_headers中找到了
https://addons.mozilla.org/en-US/firefox/addon/thinkahead/和
thinkahead.js
。我是否可以使用它编写Firefox扩展?已经有这样的Firefox扩展了吗?
我为Chrome扩展程序找到了一些链接:
http://thinkahead.mozdev.org/
http://www.chromium.org/developers/design-documents/extensions/notifications-of-web-request-and-navigation
https://groups.google.com/a/chromium.org/group/chromium-extensions/browse_thread/thread/90645ce11e1b3d86?pli=1
据我所知,以上列表中只有Firefox或Chrome扩展程序是可行的。你有什么其他的建议?您有一些如何编写或在哪里找到这样的扩展的指针吗?
最佳答案
我在https://developer.mozilla.org/en/Setting_HTTP_request_headers和https://addons.mozilla.org/en-US/firefox/addon/thinkahead/中找到了http://thinkahead.mozdev.org/和thinkahead.js。我是否可以使用它编写Firefox扩展?已经有这样的Firefox扩展了吗?
我是后者扩展的作者,尽管我尚未对其进行更新以支持较新版本的Firefox。我最初的猜测是,是的,它将满足您的要求:
用户无需插件即可访问您的网页。网页包含ThinkAhead块,该块会向服务器发送一个简单的版本头,但是由于未安装插件,因此将忽略该块。
由于服务器看不到该标头,因此它将客户端重定向到页面以安装插件。
用户安装插件。
用户访问带有插件的网页。页面将版本标头发送到服务器,因此服务器允许访问。
ThinkAhead块匹配所有不是myprivatewebpage
的页面,并执行类似将HTTP状态设置为403 Forbidden的操作。从而:
当用户访问myprivatewebpage
中的任何网页时,都是正常的行为。
当用户访问myprivatewebpage
以外的任何网页时,访问将被拒绝。
如果您想更早地捕获不良请求,则可以修改传出标头,而不必修改传入的标头,可能会搞砸“ If-Match”或“ Accept”,以便永不兑现请求。
此解决方案非常轻巧,但可能不足以满足您的需求。这取决于您要保护的内容:鉴于以上所述,客户端将无法看到被阻止的内容,但是外部“被阻止”的主机可能仍会注意到请求已发送,并且可能能够从请求中收集信息。网址。
关于security - Firefox或Chrome插件可阻止和过滤所有传出连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5832664/
非常简单的问题 - 是否可以通过 Chromium 创建 google chrome 扩展,并让在不同操作系统上运行 Chrome 的人使用相同的扩展? 我正在Ubuntu上开发。 最佳答案 是的,完
我了解 chrome.bookmarks API(记录在 http://goo.gl/tIb6V6 )旨在用于开发访问/操作我的 Chrome 书签的 Chrome 扩展程序(当然要在 Chrome
在比较开源浏览器 Firefox 和 Chromium 的扩展、附加组件和列表时,我试图找到一些有趣的数据。 我感兴趣的是多宿主扩展(两个浏览器列表上都可用的扩展)。 但是当浏览 Chromium 扩
使用新的 chrome.notifications API,我无法从我的扩展程序中获取通知以显示。即使是最基本的通知也无法为我显示,但我没有收到任何错误,并且回调函数已正确执行。 list .json
我正在构建一个在 Chrome 上运行的信息亭媒体,可以播放带音频的视频。我知道默认情况下,chrome 只允许自动播放带有静音 Prop 的视频。 而且我知道我可以通过 chrome://flags
我从来没有真正写过 真实 Chrome 扩展程序。不久前我做了一个只是一个链接下拉列表,但这并不重要。无论如何,与其先回到关于编写 Chrome 扩展程序的大量教程中,不如先确保我的想法是可行的。 我
主要目的是在单个容器中运行多个 chrome 浏览器(9 个浏览器)。 我有一个集线器和节点设置,其中包含多个浏览器的容器,可在单个 chrome 节点容器中运行。我使用以下 docker 命令创建了
我想写一个小的 chrome 扩展程序,它应该从网页 A(当前网页)获取信息,将选项卡更新到网页 B,然后将代码注入(inject)网页 B。不幸的是,以下代码正在将网页更新到 B 但注入(injec
是否可以打开 Chrome 开发者工具来检查 Chrome 应用? 最佳答案 所有可调试目标都列在 chrome://inspect/ 下。请参阅“应用程序”标签。 关于google-chrome -
我正在为 Google Chrome 开发一个应用程序,我想知道如何收费。 问题是我住在巴西,在这个链接上它告诉我它不支持 Chrome 网上应用店付款。如果没有 Chrome 网上商店付款,我可以通
我刚刚更新到 Chrome 32.0.1700.76 m(在 Win7 上)并且开发人员工具已更改。 特别令人痛苦的是用于检查页面元素的放大镜图标消失了。也没有提到它的快捷方式列表。 任何人都知道这已
我在 chrome-extension API (chrome.webrequest) 中遇到问题。 我的 list .json { "name": "tesst", "version": "
我已经制作了 chrome 主机来在我的扩展程序和我的进程之间传递 native 消息,我的进程在 chrome 启动时启动,但在我关闭 chrome 时不关闭,我应该向主机的 list 添加参数还是
文档对此非常不清楚。我知道如果您自己托管您的扩展程序,您可以通过增加版本号来自动更新您的扩展程序。但是,我不知道您是否可以在仍发布到 chrome 网上商店的同时进行自托管。 我不敢相信 Google
我最近一直在使用 Selenium WebDriver。我还专门与 chromedriver 合作。每当我打开一个新的 chrome 窗口 (driver.get(url)) 时,Chrome 都会以
我指的是chrome://flags 我很想知道是否可以通过自定义 chrome 扩展启用或禁用特定的 chrome 标志? 例如-我想启用 Enable Media Source API on e
当我在 chrome 开发者仪表板上向我的扩展程序上传更新时, 它无法这样做,它显示, An error occurred: Failed to process your item. Chrome W
我正在尝试编写一个需要用户身份验证的 chrome 扩展。 Google's tutorial建议我需要先上传到网上商店才能获得 key : Login to the Google APIs Cons
我已经开发了一个 Chrome 扩展程序并且我已经打包了它。 我将我的扩展程序发送给一些人试用,但 Chrome 开始阻止它在商店中找不到的扩展程序。 有没有办法安装我的扩展程序而不会被 Chrome
某些 Chrome 扩展不适用于 Chromium。例如:http://code.google.com/chrome/extensions/samples.html#5d81304a17cf7ac28
我是一名优秀的程序员,十分优秀!