相关疑难解决方法(0)

Frame Buster Buster ......需要buster代码

假设您不希望其他网站在以下位置"构建"您的网站<iframe>:

<iframe src="http://example.org"></iframe>
Run Code Online (Sandbox Code Playgroud)

因此,您将反框架,帧破坏JavaScript插入到您的所有页面中:

/* break us out of any containing iframes */
if (top != self) { top.location.replace(self.location.href); }
Run Code Online (Sandbox Code Playgroud)

优秀!现在你自动"破解"或突破任何包含iframe.除了一个小问题.

事实证明,您的帧破坏代码可能被破坏,如下所示:

<script type="text/javascript">
    var prevent_bust = 0  
    window.onbeforeunload = function() { prevent_bust++ }  
    setInterval(function() {  
      if (prevent_bust > 0) {  
        prevent_bust -= 2  
        window.top.location = 'http://example.org/page-which-responds-with-204'  
      }  
    }, 1)  
</script>
Run Code Online (Sandbox Code Playgroud)

此代码执行以下操作:

  • 每次浏览器尝试通过window.onbeforeunload事件处理程序离开当前页面时,都会递增计数器
  • 设置一个通过每毫秒触发的计时器,setInterval()如果它看到计数器递增,则将当前位置更改为攻击者控制的服务器
  • 该服务器提供具有HTTP状态代码204的页面,这不会导致浏览器在任何地方导航

我的问题是 - 这更像是一个JavaScript拼图,而不是一个实际的问题 - 你怎么能打败破坏框架的破坏者呢?

我有一些想法,但在我的测试中没有任何效果:

  • 试图通过清除onbeforeunload事件onbeforeunload = null …

html javascript iframe framebusting

415
推荐指数
11
解决办法
13万
查看次数

使用Chrome扩展程序中的AJAX请求检测URL是否支持HTTP2?

我希望用户能够将其网站网址输入到Chrome扩展程序中的输入框中,Chrome扩展程序将使用AJAX请求或其他类似内容来检测并告知用户URL后面的服务器是否支持发送响应通过HTTP2.这可能吗?

也许WebRequest有办法获取这些信息?还是新的Fetch API?你的请求能否以某种方式告诉服务器只能理解HTTP2回复?我看不出明显的方式.

我知道你可以使用window.chrome.loadTimes().connectionInfo获取当前页面的协议,但这需要加载我不想做的整个页面.

示例URLS:

通过HTTP2发送:https://cdn.sstatic.net/

通过HTTP 1.1提供:https://stackoverflow.com/

javascript ajax google-chrome google-chrome-extension http2

16
推荐指数
1
解决办法
1023
查看次数

您无权使用阻止 webRequest 侦听器。请务必在清单中声明 webRequestBlocking 权限

我尝试使用 React js 开发我的第一个 Chrome 扩展。当我尝试使用 chrome.webRequest API 阻止 chrome 扩展中的 URL 时,错误页面显示两个错误。

“webRequestBlocking”需要 2 或更低的清单版本。

未选中的runtime.lastError:您无权使用阻塞的webRequest侦听器。请务必在清单中声明 webRequestBlocking 权限。

我在清单文件中声明了“webRequestBlocking”权限。这是我的manifest.json

{
  "manifest_version": 3,
  "name": "Chrome Extension",
  "description": "First Extension",
  "options_page": "options.html",
  "background": {
  "service_worker": "background.bundle.js",
  "matches": [
   "<all_urls>"
  ]
},
 "action": {
 "default_title": "Open Extension",
 "default_icon": "icon-34.png"
 },
 "icons": {
 "128": "icon-128.png"
 },
 "content_scripts": [
 {
   "matches": [
    "http://*/*",
    "https://*/*",
    "<all_urls>"
   ],
   "js": [
    "contentScript.bundle.js"
   ],
   "css": [
    "content.styles.css"
   ]
  }
 ],
 "devtools_page": "devtools.html",
 "web_accessible_resources": [
 {
  "resources": [
    "content.styles.css", …
Run Code Online (Sandbox Code Playgroud)

webrequest google-chrome-extension reactjs manifest.json

7
推荐指数
1
解决办法
1万
查看次数

在Chrome扩展程序中浏览<meta> X-Frame-Options DENY?

我正在编写一个chrome扩展,就像在内联iframe中使用intab加载链接一样,除了将X-Frame-Options标题设置为DENY或SAMEORIGIN的网站外,它的效果很好.

在本课题中,提供了一个工作解决方案,用于HTTP标头包含X-Frame-Options属性的情况.但是,X-Frame-Options也可以在HTML中的元素中设置.

有没有办法在被chrome加载之前删除这个元素?

javascript iframe google-chrome-extension x-frame-options

6
推荐指数
1
解决办法
2022
查看次数

用网页覆盖 Chrome 新标签页?

Google Chrome 扩展程序是否有一种干净的方法将非本地网页设置为新标签页,同时保持多功能框清除或突出显示?

扩展清单中的chrome_url_overrides.newtab 选项仅允许本地 HTML 页面。

现在,我看到两个选择:

  1. iframe 本地扩展页面中的网页。然而,许多网站在 iframe 时无法正常工作。
  2. 将本地新标签页重定向到网页。然而,这并不能可靠地突出显示多功能框,因此用户必须在键入之前手动将焦点设置到多功能框,这是一种很差的用户体验。

理想的解决方案将使网页保持在新标签页的顶部框架,并且多功能框将被清除或突出显示。

附加信息:

google-chrome-extension

6
推荐指数
1
解决办法
8592
查看次数

Chrome扩展程序:在background.html中访问跨域iframe

由于页面的复杂性,我正在尝试编写一个扩展,该扩展刮取需要作为网页加载的网站(XHR并不是真正的选择)。我想出的最好的解决方案是通过放置在background.html中的iframe进行抓取。当满足目标页面上的某些条件时,该扩展将向用户提供通知。

几年前在这里发布了一个非常类似的问题:

Chrome扩展程序:加载隐藏的页面(不带iframe)

我可以通过删除x-frame-options标头在后台页面中将iframe与目标页面一起加载,如对上述问题的回答所示。当页面加载到浏览器选项卡/窗口中时,我可以通过内容脚本抓取数据。但是,我希望能够从后台脚本执行此操作,并且由于跨域安全性的原因,它当然不能直接访问iframe contentDocument。

不幸的是,尽管iframe很好地从目标页面加载了内容,但它没有加载内容脚本。似乎background.html根本没有加载任何内容脚本。这是有道理的,因为当扩展开始加载彼此的内容脚本时,事情可能会变得疯狂。

是否有清单选项允许特定的内容脚本在后台页面的iframe中运行?

如果不是,是否有任何方法可以放松扩展中访问iframe contentDocument的跨域安全性?

请注意,不能使用--disable-web-security chrome命令行开关。我希望非技术人员能够使用该扩展程序,并且我不想要求用户禁用网络安全性才能使用该扩展程序。

如果无法在后台页面中运行内容脚本或放松安全性,还有什么其他可能性可以在不使用XHR的情况下抓取带有chrome扩展名的页面DOM?当然一定有办法。

javascript iframe google-chrome google-chrome-extension

5
推荐指数
0
解决办法
2156
查看次数

基于iframe的chrome扩展中的权限怎么办?

我正在制作一个 chrome 扩展,其中有一个 iframe。当扩展程序请求服务器以获取页面时,它会返回错误Refused to display 'https://subdomain.example.com/' in a frame because it set 'X-Frame-Options' to 'deny'。尽管我已在我的文件中设置了x-frame-optionsto并在后端项目的特定方法中添加了 a ,但它返回了另一个错误。我在我的文件中添加了和。不走运,它返回了,所以我删除了权限并添加了v3 的权限。没有结果!!然后我添加了deny.htaccessheader('x-frame-options: GOFORIT')Refused to display 'https://subdomain.example.com/' in a frame because it set multiple 'X-Frame-Options' headers with conflicting values ('GOFORIT, DENY'). Falling back to 'deny'webRequestwebRequestBlockingpermissionsmanifest.json'webRequestBlocking' requires manifest version of 2 or lowerUnchecked runtime.lastError: You do not have permission to use blocking webRequest listeners. Be sure to declare the webRequestBlocking permission …

javascript google-chrome google-chrome-extension x-frame-options chrome-extension-manifest-v3

1
推荐指数
1
解决办法
5940
查看次数

Chrome 扩展程序将属性附加到每个选项卡

在 Chrome 扩展中,我创建了选项卡属性,并尝试将其与每个选项卡一起存储。做这个的最好方式是什么?我研究过使用 localStorage,但似乎可能有一种更简单的方法。数据绝不是永久的,它仅在选项卡存在时就存在。

google-chrome google-chrome-extension

0
推荐指数
1
解决办法
1592
查看次数