LAN port scan forbidder

Forbid non-LAN web to access LAN

What is LAN port scan forbidder?

LAN port scan forbidder is a Chrome extension developed by https://garywill.github.io, and its main feature is "Forbid non-LAN web to access LAN".

Extension Screenshots

screenshot

Download LAN port scan forbidder Extension CRX File

Download LAN port scan forbidder extension files in crx format, manually install Chrome extensions in the browser, or share the crx files with friends to easily install Chrome extensions.

Extension Usage Instructions

                        Forbid untrusted web to scan localhost or LAN. 

## Source Code Repo
https://github.com/garywill/LAN-port-scan-forbidder

## What

Webs can try to fetch `127.0.0.1:xxxx` or `192.168.Y.Z:xxxx` to scan your open ports in LAN.

Although browsers have cross-domain protections, webs can't read response contents, **but** can still see the connection succeeds or fails.

There're already reports that some websites using that as tracking fingerprint.

> A web for testing: http://samy.pl/webscan/

## So

Forbid any website behaviors trying to connect to your LAN or localhost, if user is visiting the website via their domains or public IP addresses. (Read the source code `background.js` to see the logic)

> Using JS library [whitequark/ipaddr.js](https://github.com/whitequark/ipaddr.js) (MIT License) v2.0.0 to judge IP range.


### Notification

User can enable notification. When untrusted web tries to access private network and get blocked, will show up notification. 

### Fallback operation

If user find a web broken, user can temporary set this addon disabled via toolbar button for:

- this one tab
- this one tab and new tabs opened by this tab
- this one window (Firefox only)
- globally

(above can be set as keyboard shortcuts)

there's showy toolbar button badge indicating disabling status.

## Cases when web LAN scan is properly used

Not all LAN-port-scan are evil.

- Some manufacturers provide web for user's browser to scan LAN for their product that need updating.

- Some softwares use `127.0.0.1` communication to interact between native program and web.

## Disclaimer

This open souce addon comes with no warranty. Use on you own risk!                    

Extension Basic Information

Name LAN port scan forbidder LAN port scan forbidder
ID lapppchpconamefemlnjdebbcpbncafl
Official URL https://chromewebstore.google.com/detail/lan-port-scan-forbidder/lapppchpconamefemlnjdebbcpbncafl
Description Forbid non-LAN web to access LAN
File Size 35.41 KB
Installation Count 310
Current Version 0.6.1
Last Updated 2023-11-09
Publish Date 2021-12-25
Developer https://garywill.github.io
Email [email protected]
Payment Type free
Extension Website https://github.com/garywill/LAN-port-scan-forbidder
Help Page URL https://github.com/garywill/LAN-port-scan-forbidder
Privacy Policy Page URL https://github.com/garywill/garywill/blob/privacy_policy/README.md
Supported Languages en
manifest.json
{
    "update_url": "https:\/\/clients2.google.com\/service\/update2\/crx",
    "name": "LAN port scan forbidder",
    "description": "Forbid non-LAN web to access LAN",
    "manifest_version": 2,
    "version": "0.6.1",
    "homepage_url": "https:\/\/github.com\/garywill\/LAN-port-scan-forbidder\/",
    "author": {
        "name": "Garywill",
        "url": "https:\/\/garywill.github.io"
    },
    "permissions": [
        "webRequest",
        "webRequestBlocking",
        "*:\/\/*\/*",
        "ws:\/\/*\/*",
        "wss:\/\/*\/*",
        "ftp:\/\/*\/*",
        "contextMenus",
        "storage"
    ],
    "optional_permissions": [
        "notifications"
    ],
    "icons": {
        "128": "icon.png"
    },
    "background": {
        "page": "background.html"
    },
    "browser_action": {
        "default_icon": "icon_gray.png",
        "default_title": "LAN port scan forbidder"
    },
    "commands": {
        "_execute_browser_action": {
            "description": "Click toolbar button"
        },
        "toggle_t": {
            "description": "Toggle for one tab"
        },
        "toggle_h": {
            "description": "Toggle for one tab and new tabs opened by it"
        },
        "toggle_global": {
            "description": "Toggle globally enable\/disable"
        }
    },
    "options_ui": {
        "page": "options.html"
    }
}