How Fugu is the Web?์˜ ์ƒํ’ˆ ๋กœ๊ณ  ์ด๋ฏธ์ง€

How Fugu is the Web?

ํ™•์žฅ ํ”„๋กœ๊ทธ๋žจ๊ฐœ๋ฐœ์ž ๋„๊ตฌ36 ์‚ฌ์šฉ์ž
How Fugu is the Web?์˜ ํ•ญ๋ชฉ ๋ฏธ๋””์–ด 2(์Šคํฌ๋ฆฐ์ƒท)
How Fugu is the Web?์˜ ํ•ญ๋ชฉ ๋ฏธ๋””์–ด 1(์Šคํฌ๋ฆฐ์ƒท)
How Fugu is the Web?์˜ ํ•ญ๋ชฉ ๋ฏธ๋””์–ด 2(์Šคํฌ๋ฆฐ์ƒท)
How Fugu is the Web?์˜ ํ•ญ๋ชฉ ๋ฏธ๋””์–ด 1(์Šคํฌ๋ฆฐ์ƒท)
How Fugu is the Web?์˜ ํ•ญ๋ชฉ ๋ฏธ๋””์–ด 1(์Šคํฌ๋ฆฐ์ƒท)
How Fugu is the Web?์˜ ํ•ญ๋ชฉ ๋ฏธ๋””์–ด 2(์Šคํฌ๋ฆฐ์ƒท)

๊ฐœ์š”

An extension to shine light on the Project Fugu ๐Ÿก APIs web apps want to use.

How it works API data The raw data for the different Project Fugu ๐Ÿก APIs is curated in a spreadsheet, which is then turned into JavaScript, so keeping the list of APIs updated is hopefully a straightforward task. API detection The extension monitors the requests a page makes via the chrome.webRequest.onBeforeRequest.addListener() API. Each response body, grouped by main frame, JavaScript, and Web App Manifest response bodies, is then run through a set of regular expressions like /navigator\.hid\.requestDevice\s*\(/g to determine if the code hints at a Project Fugu ๐Ÿก API potentially being used. Browser support detection Most Project Fugu ๐Ÿก APIs are easily feature-detectable by checking for the existence of interfaces or properties, for example, as in 'BarcodeDetector' in window. Other APIs require a ServiceWorkerRegistration, but luckily the popup window in Manifest V3 extensions uses a service worker, so it can be used via an IIFE that can be run in the client or the service worker. An example is (async () => 'periodicSync' in (await navigator.serviceWorker?.ready || self.registration))(). The support categories are listed below: โœ”๏ธ Supported by your browser. ๐Ÿšซ Not supported by your browser. ๐Ÿคท Support unknown for your browser. (The only way to know would be user-agent sniffing.) Deep-linking The extension makes use of Text Fragment URLs to deep-link to the occurrence of a detected API, for example https://airhorner.com/scripts/main.min.js#:~:text=navigator.setAppBadge(. For main frame documents, the source code gets rendered in a helper HTML page controlled by the extension, since it is impossible to link to view-source: protocol links. Limitations โ€ข The chrome.webRequest.onBeforeRequest.addListener() API unfortunately does not "see" requests that are handled by a service worker (crbug.com/766433). There are three possible workarounds for this: - Hard-reload via โŒ˜/ctrl+shift+r. - Open DevTools and check the Bypass for network checkbox in the Service Worker section of the Application tab. - Clear storage in the Storage section of the Application tab. โ€ข The extension only does static code analysis, that is, there is no guarantee that the app actually uses the code snippet where a Project Fugu ๐Ÿก API was detected. โ€ข Heavily minified code will not be detected. For example, if an app minifies navigator.clipboard.write() to const nav = navigator; nav.clipboard.write(), the extension will not detect this. License Apache 2.0.

์„ธ๋ถ€์ •๋ณด

  • ๋ฒ„์ „
    1.24.0
  • ์—…๋ฐ์ดํŠธ๋จ
    2025๋…„ 12์›” 10์ผ
  • ์ œ๊ณต
    Thomas Steiner
  • ํฌ๊ธฐ
    125KiB
  • ์–ธ์–ด
    English
  • ๊ฐœ๋ฐœ์ž
    Thomas Steiner
    Neanderstr. 3 Hamburg 20459 Germany
    ์ด๋ฉ”์ผ
    steiner.thomas@gmail.com
  • ๋น„ํŒ๋งค์ž
    ํŒ๋งค์ž๋กœ ์‹๋ณ„๋˜์ง€ ์•Š์€ ๊ฐœ๋ฐœ์ž์ž…๋‹ˆ๋‹ค. ์œ ๋Ÿฝ ์—ฐํ•ฉ์— ๊ฑฐ์ฃผํ•˜๋Š” ์†Œ๋น„์ž์˜ ๊ฒฝ์šฐ, ์ด ๊ฐœ๋ฐœ์ž์™€ ์ฒด๊ฒฐํ•œ ๊ณ„์•ฝ์— ๋Œ€ํ•ด์„œ๋Š” ์†Œ๋น„์ž ๊ถŒ๋ฆฌ๊ฐ€ ์ ์šฉ๋˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ์Œ์„ ์œ ์˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๊ฐœ์ธ์ •๋ณด ๋ณดํ˜ธ

ํ™•์žฅ ํ”„๋กœ๊ทธ๋žจ์„ ๊ด€๋ฆฌํ•˜๊ณ  ์กฐ์ง์—์„œ ํ™•์žฅ ํ”„๋กœ๊ทธ๋žจ์ด ์‚ฌ์šฉ๋˜๋Š” ๋ฐฉ์‹์„ ์•Œ์•„๋ณด์„ธ์š”.
๊ฐœ๋ฐœ์ž๊ฐ€ ๋ฐ์ดํ„ฐ๋ฅผ ์ˆ˜์ง‘ํ•˜๊ฑฐ๋‚˜ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ฒ ๋‹ค๊ณ  ๋ช…์‹œํ–ˆ์Šต๋‹ˆ๋‹ค. ์ž์„ธํžˆ ์•Œ์•„๋ณด๋ ค๋ฉด ๊ฐœ๋ฐœ์ž์˜ privacy policy ๋ฌธ์„œ๋ฅผ ์ฐธ๊ณ ํ•˜์„ธ์š”.

๊ฐœ๋ฐœ์ž๊ฐ€ ์‚ฌ์šฉ์ž ๋ฐ์ดํ„ฐ์— ๊ด€ํ•ด ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์„ ์–ธํ–ˆ์Šต๋‹ˆ๋‹ค

  • ์Šน์ธ๋œ ์‚ฌ์šฉ ์‚ฌ๋ก€๋ฅผ ์ œ์™ธํ•˜๊ณ  ์„œ๋“œ ํŒŒํ‹ฐ์— ํŒ๋งคํ•˜์ง€ ์•Š์Œ
  • ํ•ญ๋ชฉ์˜ ํ•ต์‹ฌ ๊ธฐ๋Šฅ๊ณผ ๊ด€๋ จ ์—†๋Š” ๋ชฉ์ ์œผ๋กœ ์‚ฌ์šฉํ•˜๊ฑฐ๋‚˜ ์ „์†กํ•˜์ง€ ์•Š์Œ
  • ์‹ ์šฉ๋„ ํŒ๋‹จ ๋˜๋Š” ๋Œ€์ถœ ๋ชฉ์ ์œผ๋กœ ์‚ฌ์šฉํ•˜๊ฑฐ๋‚˜ ์ „์†กํ•˜์ง€ ์•Š์Œ

์ง€์›

์งˆ๋ฌธ, ์ œ์•ˆ ๋˜๋Š” ๋ฌธ์ œ์™€ ๊ด€๋ จํ•˜์—ฌ ๋„์›€์ด ํ•„์š”ํ•˜๋ฉด ๋ฐ์Šคํฌํ†ฑ ๋ธŒ๋ผ์šฐ์ €์—์„œ ์ด ํŽ˜์ด์ง€๋ฅผ ์—ฌ์„ธ์š”.

Google ์•ฑ