[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$foMlWPvAq6RyT4daAsi8vGC69lfngdit0udDZlz7F97M":3},{"slug":4,"name":5,"version":6,"author":7,"author_profile":8,"description":9,"short_description":10,"active_installs":11,"downloaded":12,"rating":11,"num_ratings":11,"last_updated":13,"tested_up_to":14,"requires_at_least":15,"requires_php":16,"tags":17,"homepage":21,"download_link":22,"security_score":23,"vuln_count":11,"unpatched_count":11,"last_vuln_date":24,"fetched_at":25,"vulnerabilities":26,"developer":27,"crawl_stats":24,"alternatives":34,"analysis":118,"fingerprints":204},"mesh-plug","Mesh-Plug for Meshtastic","1.3.1","POTAR","https:\u002F\u002Fprofiles.wordpress.org\u002Fpotar\u002F","\u003Cp>Mesh-Plug provides a simple shortcode that connects to your MQTT broker over WebSocket and prints incoming messages to a live log.\u003C\u002Fp>\n\u003Cp>Shortcode: [mesh_plug]\u003C\u002Fp>\n\u003Cp>Map shortcode options:\u003Cbr \u002F>\n– map_tiles=”voyager|osm|light|dark” (default: voyager)\u003Cbr \u002F>\n– map_zoom=”13″ map_min_zoom=”2″ map_max_zoom=”18″\u003Cbr \u002F>\n– fit=”1|0|once” fit_max_zoom=”13″ center=”lat,lon”\u003C\u002Fp>\n\u003Ch3>External services\u003C\u002Fh3>\n\u003Cp>Mesh-Plug can connect to external services depending on how you configure and use it.\u003C\u002Fp>\n\u003Ch4>MQTT broker (configured by the site administrator)\u003C\u002Fh4>\n\u003Cp>Mesh-Plug connects directly from the visitor’s browser to the MQTT broker WebSocket URL you enter in Settings \u003Cspan aria-hidden=\"true\" class=\"wp-exclude-emoji\">→\u003C\u002Fspan> Mesh-Plug.\u003Cbr \u002F>\nThis is required for the plugin to receive and display Meshtastic\u002FMQTT messages.\u003C\u002Fp>\n\u003Cp>Data sent: the visitor’s browser establishes a WebSocket connection to your broker; it may send a client ID and (optionally) the username\u002Fpassword you configured; it subscribes to the topic filter you configured.\u003Cbr \u002F>\nWhen: whenever a page containing the [mesh_plug] shortcode is loaded and the user connects (or auto-connect is enabled).\u003C\u002Fp>\n\u003Cp>Terms\u002FPrivacy: this depends on the broker provider you choose. If you use a third-party MQTT hosting provider, review their terms and privacy policy.\u003C\u002Fp>\n\u003Ch4>Map tile providers (CARTO \u002F OpenStreetMap)\u003C\u002Fh4>\n\u003Cp>If you use the Map tab, Mesh-Plug downloads map tiles from a free provider to render the basemap.\u003Cbr \u002F>\nBy default, Mesh-Plug uses CARTO Voyager tiles. You can switch to OpenStreetMap tiles with shortcode map attributes.\u003C\u002Fp>\n\u003Cp>Data sent: standard HTTP requests for map tiles; this typically includes the visitor’s IP address, user agent, and the requested tile coordinates.\u003Cbr \u002F>\nWhen: whenever the Map tab is opened\u002Fvisible and the map needs to load tiles.\u003C\u002Fp>\n\u003Cp>CARTO basemaps: https:\u002F\u002Fcarto.com\u002Fbasemaps\u003Cbr \u002F>\nOpenStreetMap tile usage policy: https:\u002F\u002Foperations.osmfoundation.org\u002Fpolicies\u002Ftiles\u002F\u003Cbr \u002F>\nOpenStreetMap privacy policy: https:\u002F\u002Fosmfoundation.org\u002Fwiki\u002FPrivacy_Policy\u003C\u002Fp>\n\u003Ch3>License\u003C\u002Fh3>\n\u003Cp>GPLv2 or later.\u003C\u002Fp>\n\u003Ch3>Credits\u003C\u002Fh3>\n\u003Cp>Developed by \u003Cstrong>Michael Winchester\u003C\u002Fstrong>\u003Cbr \u002F>\nFor documentation and updates, visit \u003Ca href=\"https:\u002F\u002Fmeshplug.michaelwinchester.com\u002F\" rel=\"nofollow ugc\">https:\u002F\u002Fmeshplug.michaelwinchester.com\u002F\u003C\u002Fa>\u003C\u002Fp>\n","Lightweight Meshtastic\u002FMQTT viewer for WordPress via MQTT over WebSocket (WS\u002FWSS).",0,175,"2026-03-09T20:39:00.000Z","6.9.4","6.0","7.4",[18,19,20],"meshtastic","mqtt","websocket","","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fmesh-plug.1.3.1.zip",100,null,"2026-03-15T15:16:48.613Z",[],{"slug":28,"display_name":7,"profile_url":8,"plugin_count":29,"total_installs":30,"avg_security_score":23,"avg_patch_time_days":31,"trust_score":32,"computed_at":33},"potar",4,10,30,94,"2026-04-04T16:24:10.920Z",[35,48,65,83,99],{"slug":36,"name":37,"version":38,"author":7,"author_profile":8,"description":39,"short_description":40,"active_installs":11,"downloaded":41,"rating":11,"num_ratings":11,"last_updated":42,"tested_up_to":14,"requires_at_least":15,"requires_php":16,"tags":43,"homepage":21,"download_link":47,"security_score":23,"vuln_count":11,"unpatched_count":11,"last_vuln_date":24,"fetched_at":25},"mqtt-plug","MQTT-Plug","1.0","\u003Cp>MQTT-Plug brings live MQTT data directly into WordPress using secure WebSocket connections.\u003Cbr \u002F>\nIt is designed for developers, IoT experimenters, and small production deployments that want real-time visibility without building a custom frontend.\u003C\u002Fp>\n\u003Cp>Unlike traditional MQTT tools, MQTT-Plug focuses on \u003Cstrong>embedding live data into WordPress pages, posts, and dashboards\u003C\u002Fstrong>, while keeping credentials safe and configuration simple.\u003C\u002Fp>\n\u003Ch3>Key Features\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>Connect to MQTT brokers over WS\u002FWSS\u003C\u002Fli>\n\u003Cli>Live message stream and event log\u003C\u002Fli>\n\u003Cli>Topic-based subscriptions\u003C\u002Fli>\n\u003Cli>Shortcode-driven embeds\u003C\u002Fli>\n\u003Cli>Works with public or authenticated dashboards\u003C\u002Fli>\n\u003Cli>Designed for modern MQTT backends (Mosquitto, EMQX, HiveMQ, The-Link-Builders, managed brokers)\u003C\u002Fli>\n\u003Cli>No external Node services required\u003C\u002Fli>\n\u003Cli>Lightweight; no tracking, no telemetry, no lock-in\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>MQTT-Plug is infrastructure-agnostic. You control your broker, topics, and data flow.\u003C\u002Fp>\n\u003Ch3>Configuration\u003C\u002Fh3>\n\u003Cp>In \u003Cstrong>Settings \u003Cspan aria-hidden=\"true\" class=\"wp-exclude-emoji\">→\u003C\u002Fspan> MQTT-Plug\u003C\u002Fstrong>, configure:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Broker host\u003C\u002Fli>\n\u003Cli>WebSocket port\u003C\u002Fli>\n\u003Cli>TLS \u002F secure connection (WSS)\u003C\u002Fli>\n\u003Cli>Username and password (if required)\u003C\u002Fli>\n\u003Cli>Base topic or subscription filter\u003C\u002Fli>\n\u003Cli>Debug logging (optional)\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>All credentials are stored using WordPress options and are never exposed to public users unless explicitly enabled.\u003C\u002Fp>\n\u003Ch3>Usage\u003C\u002Fh3>\n\u003Cp>Basic shortcode:\u003C\u002Fp>\n\u003Cp>[mqtt_plug]\u003C\u002Fp>\n\u003Cp>Optional attributes:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Ccode>height=\"520px\"\u003C\u002Fcode> – set container height\u003C\u002Fli>\n\u003Cli>\u003Ccode>class=\"custom-class\"\u003C\u002Fcode> – add a CSS hook\u003C\u002Fli>\n\u003Cli>\u003Ccode>mode=\"observer\"\u003C\u002Fcode> – server-fed or read-only views (if enabled)\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Example:\u003C\u002Fp>\n\u003Cp>[mqtt_plug height=”600px” class=”iot-dashboard” mode=”observer”]\u003C\u002Fp>\n\u003Ch3>Security Notes\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>Public pages should \u003Cstrong>not\u003C\u002Fstrong> use live credentials.\u003C\u002Fli>\n\u003Cli>Use observer or server-fed modes for public dashboards.\u003C\u002Fli>\n\u003Cli>Always prefer WSS when exposing MQTT over the internet.\u003C\u002Fli>\n\u003Cli>Rotate credentials regularly for production systems.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>MQTT-Plug does not open inbound ports on WordPress and does not proxy MQTT traffic through the server unless explicitly configured.\u003C\u002Fp>\n\u003Ch3>License\u003C\u002Fh3>\n\u003Cp>GPLv2 or later.\u003C\u002Fp>\n\u003Ch3>Credits\u003C\u002Fh3>\n\u003Cp>Developed by \u003Cstrong>Michael Winchester\u003C\u002Fstrong>\u003Cbr \u002F>\nFor documentation and updates, visit \u003Ca href=\"https:\u002F\u002Fmeshplug.michaelwinchester.com\u002F\" rel=\"nofollow ugc\">https:\u002F\u002Fmeshplug.michaelwinchester.com\u002F\u003C\u002Fa>\u003C\u002Fp>\n","Real-time MQTT dashboards inside WordPress. Connect securely over WebSocket (WS\u002FWSS) and visualize live IoT data, logs, and events.",141,"2026-02-05T00:28:00.000Z",[44,45,19,46,20],"dashboards","iot","realtime","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fmqtt-plug.1.0.zip",{"slug":49,"name":50,"version":51,"author":52,"author_profile":53,"description":54,"short_description":55,"active_installs":30,"downloaded":56,"rating":11,"num_ratings":11,"last_updated":57,"tested_up_to":58,"requires_at_least":59,"requires_php":21,"tags":60,"homepage":62,"download_link":63,"security_score":64,"vuln_count":11,"unpatched_count":11,"last_vuln_date":24,"fetched_at":25},"led-site-indicator","LED-SITE-INDICATOR","2.0.2","tomjuggler","https:\u002F\u002Fprofiles.wordpress.org\u002Ftomjuggler\u002F","\u003Cp>Setting up LED-SITE-INDICATOR is easy. Just use the settings screen to input your account details and your IOT LED should start flashing.\u003C\u002Fp>\n\u003Cp>Requires a free account sign-up at https:\u002F\u002Fledindicator.devsoft.co.za\u003C\u002Fp>\n\u003Ch4>Credits\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>Based on original WP-MQTT plugin by roytanck: https:\u002F\u002Fgithub.com\u002Froytanck\u002FWP-MQTT\u003C\u002Fli>\n\u003Cli>Created by Tom Hastings: https:\u002F\u002Fdevsoft.co.za\u003C\u002Fli>\n\u003Cli>Hardware by EnterAction: https:\u002F\u002Fenteraction.com.au\u003C\u002Fli>\n\u003C\u002Ful>\n","LED-SITE-INDICATOR connects WordPress to the LED Website Indicator IOT device.",2117,"2023-10-23T07:21:00.000Z","6.3.8","4.4",[61,45,19],"internet-of-things","https:\u002F\u002Fledindicator.devsoft.co.za","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fled-site-indicator.zip",85,{"slug":66,"name":67,"version":68,"author":69,"author_profile":70,"description":71,"short_description":72,"active_installs":11,"downloaded":73,"rating":11,"num_ratings":11,"last_updated":74,"tested_up_to":14,"requires_at_least":75,"requires_php":16,"tags":76,"homepage":81,"download_link":82,"security_score":23,"vuln_count":11,"unpatched_count":11,"last_vuln_date":24,"fetched_at":25},"badwolf-web-irc-client","Badwolf Web IRC Client","5.2","badwolf72","https:\u002F\u002Fprofiles.wordpress.org\u002Fbadwolf72\u002F","\u003Cp>A modern, feature-rich WebSocket IRC client for WordPress. Connect your website visitors to your IRC server with real-time chat, private messaging, desktop notifications, and a beautiful tabbed interface.\u003C\u002Fp>\n\u003Ch3>Version 5.2.0 – What’s New\u003C\u002Fh3>\n\u003Ch3>🔧 WordPress 6.9 Compatibility\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>\u003Cstrong>FIXED\u003C\u002Fstrong>: Plugin now works perfectly with WordPress 6.9\u003C\u002Fli>\n\u003Cli>\u003Cstrong>FIXED\u003C\u002Fstrong>: Script loading issues with block themes and Full Site Editing (FSE)\u003C\u002Fli>\n\u003Cli>\u003Cstrong>FIXED\u003C\u002Fstrong>: Configuration passing to JavaScript\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>🔌 WebSocket Improvements\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>\u003Cstrong>FIXED\u003C\u002Fstrong>: Connection stability issues\u003C\u002Fli>\n\u003Cli>\u003Cstrong>FIXED\u003C\u002Fstrong>: Binary WebSocket data handling\u003C\u002Fli>\n\u003Cli>\u003Cstrong>ADDED\u003C\u002Fstrong>: IRC subprotocol support for UnrealIRCd\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>⚙️ User Experience\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>\u003Cstrong>ADDED\u003C\u002Fstrong>: Settings link in plugin list for easy access\u003C\u002Fli>\n\u003Cli>\u003Cstrong>IMPROVED\u003C\u002Fstrong>: Error handling and logging\u003C\u002Fli>\n\u003Cli>\u003Cstrong>IMPROVED\u003C\u002Fstrong>: Connection reliability\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Features\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>✅ Real-time IRC chat via secure WebSocket (wss:\u002F\u002F)\u003C\u002Fli>\n\u003Cli>✅ Private messaging between users\u003C\u002Fli>\n\u003Cli>✅ Desktop notifications for mentions and PMs\u003C\u002Fli>\n\u003Cli>✅ Multiple channel support with tabbed interface\u003C\u002Fli>\n\u003Cli>✅ User list with right-click context menus\u003C\u002Fli>\n\u003Cli>✅ Command history (use arrow keys)\u003C\u002Fli>\n\u003Cli>✅ Auto-reconnection with smart retry logic\u003C\u002Fli>\n\u003Cli>✅ Customizable themes (light\u002Fdark)\u003C\u002Fli>\n\u003Cli>✅ Mobile-responsive design\u003C\u002Fli>\n\u003Cli>✅ IRC commands support (\u002Fnick, \u002Fjoin, \u002Fpart, \u002Fmsg, \u002Fme)\u003C\u002Fli>\n\u003Cli>✅ Tab completion for nicknames\u003C\u002Fli>\n\u003Cli>✅ Unread message badges\u003C\u002Fli>\n\u003Cli>✅ Message history (500 messages per channel)\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Requirements\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>\u003Cstrong>WordPress\u003C\u002Fstrong>: 5.0 or higher (tested up to 6.9)\u003C\u002Fli>\n\u003Cli>\u003Cstrong>PHP\u003C\u002Fstrong>: 7.4 or higher\u003C\u002Fli>\n\u003Cli>\u003Cstrong>IRC Server\u003C\u002Fstrong>: UnrealIRCd 6.x with WebSocket support (recommended)\u003C\u002Fli>\n\u003Cli>\u003Cstrong>SSL Certificate\u003C\u002Fstrong>: Valid SSL\u002FTLS certificate for secure WebSocket (wss:\u002F\u002F)\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Configuration\u003C\u002Fh3>\n\u003Ch3>WordPress Settings\u003C\u002Fh3>\n\u003Cp>Navigate to \u003Cstrong>Settings \u003Cspan aria-hidden=\"true\" class=\"wp-exclude-emoji\">→\u003C\u002Fspan> Badwolf Web IRC Client\u003C\u002Fstrong> and configure:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>WebSocket URL\u003C\u002Fstrong>: Your IRC server WebSocket URL (e.g., \u003Ccode>wss:\u002F\u002Firc.example.com:7443\u003C\u002Fcode>)\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Default Channel\u003C\u002Fstrong>: IRC channel to join (e.g., \u003Ccode>#general\u003C\u002Fcode>)\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Nickname Prefix\u003C\u002Fstrong>: Prefix for auto-generated nicknames (e.g., \u003Ccode>guest\u003C\u002Fcode>)\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Real Name\u003C\u002Fstrong>: Default real name for users\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Theme\u003C\u002Fstrong>: Light or Dark theme\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Auto Connect\u003C\u002Fstrong>: Automatically connect when page loads\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>UnrealIRCd Server Configuration\u003C\u002Fh3>\n\u003Cp>Your UnrealIRCd server must have WebSocket support enabled:\u003C\u002Fp>\n\u003Cpre>\u003Ccode>`conf\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>Load WebSocket module\u003C\u002Fp>\n\u003Cp>loadmodule “websocket”;\u003C\u002Fp>\n\u003Cp>Configure WebSocket listener\u003C\u002Fp>\n\u003Cp>listen {\u003Cbr \u002F>\n    ip *;\u003Cbr \u002F>\n    port 7443;\u003Cbr \u002F>\n    options {\u003Cbr \u002F>\n        tls;\u003Cbr \u002F>\n        websocket;\u003Cbr \u002F>\n    }\u003Cbr \u002F>\n    tls-options {\u003Cbr \u002F>\n        certificate “\u002Fpath\u002Fto\u002Ffullchain.pem”;\u003Cbr \u002F>\n        key “\u002Fpath\u002Fto\u002Fprivkey.pem”;\u003Cbr \u002F>\n        options {\u003Cbr \u002F>\n            no-client-certificate;\u003Cbr \u002F>\n        }\u003Cbr \u002F>\n    }\u003Cbr \u002F>\n}\u003Cbr \u002F>\n    `\u003C\u002Fp>\n\u003Ch3>SSL Certificate Setup (Let’s Encrypt)\u003C\u002Fh3>\n\u003Cpre>\u003Ccode>`bash\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>Install certbot if not already installed\u003C\u002Fp>\n\u003Cp>sudo apt-get install certbot\u003C\u002Fp>\n\u003Cp>Get certificate for your IRC domain\u003C\u002Fp>\n\u003Cp>sudo certbot certonly –standalone -d irc.yourdomain.com\u003C\u002Fp>\n\u003Cp>Copy certificates to UnrealIRCd\u003C\u002Fp>\n\u003Cp>sudo cp \u002Fetc\u002Fletsencrypt\u002Flive\u002Firc.yourdomain.com\u002Ffullchain.pem \u002Fpath\u002Fto\u002Funrealircd\u002Fconf\u002Ftls\u002F\u003Cbr \u002F>\nsudo cp \u002Fetc\u002Fletsencrypt\u002Flive\u002Firc.yourdomain.com\u002Fprivkey.pem \u002Fpath\u002Fto\u002Funrealircd\u002Fconf\u002Ftls\u002F\u003C\u002Fp>\n\u003Cp>Set correct permissions\u003C\u002Fp>\n\u003Cp>sudo chown unrealircd:unrealircd \u002Fpath\u002Fto\u002Funrealircd\u002Fconf\u002Ftls\u002F*.pem\u003Cbr \u002F>\nsudo chmod 600 \u002Fpath\u002Fto\u002Funrealircd\u002Fconf\u002Ftls\u002Fprivkey.pem\u003Cbr \u002F>\nsudo chmod 644 \u002Fpath\u002Fto\u002Funrealircd\u002Fconf\u002Ftls\u002Ffullchain.pem\u003C\u002Fp>\n\u003Cp>Restart UnrealIRCd\u003C\u002Fp>\n\u003Cp>cd \u002Fpath\u002Fto\u002Funrealircd\u003Cbr \u002F>\n.\u002Funrealircd restart\u003Cbr \u002F>\n    `\u003C\u002Fp>\n\u003Ch3>Auto-Renewal Setup\u003C\u002Fh3>\n\u003Cp>Create a renewal hook to automatically copy certificates:\u003C\u002Fp>\n\u003Cpre>\u003Ccode>`bash\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>Create renewal hook script\u003C\u002Fp>\n\u003Cp>sudo nano \u002Fetc\u002Fletsencrypt\u002Frenewal-hooks\u002Fdeploy\u002Fcopy-to-unrealircd.sh\u003Cbr \u002F>\n    `\u003C\u002Fp>\n\u003Cp>Add this content:\u003C\u002Fp>\n\u003Cpre>\u003Ccode>`bash\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>!\u002Fbin\u002Fbash\u003C\u002Fp>\n\u003Cp>cp \u002Fetc\u002Fletsencrypt\u002Flive\u002Firc.yourdomain.com\u002Ffullchain.pem \u002Fpath\u002Fto\u002Funrealircd\u002Fconf\u002Ftls\u002F\u003Cbr \u002F>\ncp \u002Fetc\u002Fletsencrypt\u002Flive\u002Firc.yourdomain.com\u002Fprivkey.pem \u002Fpath\u002Fto\u002Funrealircd\u002Fconf\u002Ftls\u002F\u003Cbr \u002F>\nchown unrealircd:unrealircd \u002Fpath\u002Fto\u002Funrealircd\u002Fconf\u002Ftls\u002F*.pem\u003Cbr \u002F>\nchmod 600 \u002Fpath\u002Fto\u002Funrealircd\u002Fconf\u002Ftls\u002Fprivkey.pem\u003Cbr \u002F>\nchmod 644 \u002Fpath\u002Fto\u002Funrealircd\u002Fconf\u002Ftls\u002Ffullchain.pem\u003Cbr \u002F>\n\u002Fpath\u002Fto\u002Funrealircd\u002Funrealircd rehash\u003Cbr \u002F>\n    `\u003C\u002Fp>\n\u003Cp>Make it executable:\u003C\u002Fp>\n\u003Cpre>\u003Ccode>`bash\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>sudo chmod +x \u002Fetc\u002Fletsencrypt\u002Frenewal-hooks\u002Fdeploy\u002Fcopy-to-unrealircd.sh\u003Cbr \u002F>\n    `\u003C\u002Fp>\n\u003Ch3>Usage\u003C\u002Fh3>\n\u003Ch3>Basic Shortcode\u003C\u002Fh3>\n\u003Cpre>\u003Ccode>`\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>[web_irc_client]\u003Cbr \u002F>\n    `\u003C\u002Fp>\n\u003Ch3>Shortcode with Attributes\u003C\u002Fh3>\n\u003Cpre>\u003Ccode>`\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>[web_irc_client theme=”dark” width=”100%” height=”600px”]\u003Cbr \u002F>\n    `\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Available attributes:\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Ccode>theme\u003C\u002Fcode> – Override theme (light or dark)\u003C\u002Fli>\n\u003Cli>\u003Ccode>width\u003C\u002Fcode> – Set custom width (default: 100%)\u003C\u002Fli>\n\u003Cli>\u003Ccode>height\u003C\u002Fcode> – Set custom height (default: 70vh)\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>IRC Commands\u003C\u002Fh3>\n\u003Cp>Users can use standard IRC commands:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Ccode>\u002Fnick newname\u003C\u002Fcode> – Change nickname\u003C\u002Fli>\n\u003Cli>\u003Ccode>\u002Fjoin #channel\u003C\u002Fcode> – Join a channel\u003C\u002Fli>\n\u003Cli>\u003Ccode>\u002Fpart\u003C\u002Fcode> – Leave current channel\u003C\u002Fli>\n\u003Cli>\u003Ccode>\u002Fmsg username message\u003C\u002Fcode> – Send private message\u003C\u002Fli>\n\u003Cli>\u003Ccode>\u002Fme action\u003C\u002Fcode> – Send action message\u003C\u002Fli>\n\u003Cli>\u003Ccode>\u002Fhelp\u003C\u002Fcode> – Show available commands\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Troubleshooting\u003C\u002Fh3>\n\u003Ch3>Connection Issues\u003C\u002Fh3>\n\u003Cp>\u003Cstrong>Problem\u003C\u002Fstrong>: “Reconnecting…” message appears\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Solutions\u003C\u002Fstrong>:\u003C\u002Fp>\n\u003Col>\n\u003Cli>Verify UnrealIRCd is running: \u003Ccode>ps aux | grep unrealircd\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>Check port is listening: \u003Ccode>sudo netstat -tlnp | grep 7443\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>Verify SSL certificate is valid and not expired\u003C\u002Fli>\n\u003Cli>Check UnrealIRCd logs: \u003Ccode>tail -f \u002Fpath\u002Fto\u002Funrealircd\u002Flogs\u002Fircd.log\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>Test WebSocket connection: \u003Ca href=\"https:\u002F\u002Fwww.piesocket.com\u002Fwebsocket-tester\" rel=\"nofollow ugc\">https:\u002F\u002Fwww.piesocket.com\u002Fwebsocket-tester\u003C\u002Fa>\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Ch3>SSL Certificate Errors\u003C\u002Fh3>\n\u003Cp>\u003Cstrong>Problem\u003C\u002Fstrong>: Certificate expired or invalid\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Solution\u003C\u002Fstrong>:\u003C\u002Fp>\n\u003Cpre>\u003Ccode>`bash\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>Check certificate expiry\u003C\u002Fp>\n\u003Cp>sudo certbot certificates\u003C\u002Fp>\n\u003Cp>Renew if needed\u003C\u002Fp>\n\u003Cp>sudo certbot renew –force-renewal\u003C\u002Fp>\n\u003Cp>Copy to UnrealIRCd and restart\u003C\u002Fp>\n\u003Cp>sudo cp \u002Fetc\u002Fletsencrypt\u002Flive\u002Firc.yourdomain.com\u002F*.pem \u002Fpath\u002Fto\u002Funrealircd\u002Fconf\u002Ftls\u002F\u003Cbr \u002F>\n.\u002Funrealircd restart\u003Cbr \u002F>\n    `\u003C\u002Fp>\n\u003Ch3>Plugin Not Loading\u003C\u002Fh3>\n\u003Cp>\u003Cstrong>Problem\u003C\u002Fstrong>: IRC client doesn’t appear on page\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Solutions\u003C\u002Fstrong>:\u003C\u002Fp>\n\u003Col>\n\u003Cli>Verify shortcode is correct: \u003Ccode>[web_irc_client]\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>Clear WordPress cache\u003C\u002Fli>\n\u003Cli>Clear browser cache (Ctrl+Shift+R)\u003C\u002Fli>\n\u003Cli>Check browser console for JavaScript errors (F12)\u003C\u002Fli>\n\u003Cli>Verify WebSocket URL is configured in plugin settings\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Ch3>WordPress 6.9 Issues\u003C\u002Fh3>\n\u003Cp>\u003Cstrong>Problem\u003C\u002Fstrong>: Plugin stopped working after WordPress 6.9 update\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Solution\u003C\u002Fstrong>: Update to version 5.2.0 which includes WordPress 6.9 compatibility fixes.\u003C\u002Fp>\n\u003Ch3>Support\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>\u003Cstrong>GitHub\u003C\u002Fstrong>: \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fbadwolf1972\u002Fweb-irc-client\" rel=\"nofollow ugc\">https:\u002F\u002Fgithub.com\u002Fbadwolf1972\u002Fweb-irc-client\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Issues\u003C\u002Fstrong>: \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fbadwolf1972\u002Fweb-irc-client\u002Fissues\" rel=\"nofollow ugc\">https:\u002F\u002Fgithub.com\u002Fbadwolf1972\u002Fweb-irc-client\u002Fissues\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Cstrong>WordPress Support\u003C\u002Fstrong>: \u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fsupport\u002Fplugin\u002Fbadwolf-web-irc-client\u002F\" rel=\"ugc\">https:\u002F\u002Fwordpress.org\u002Fsupport\u002Fplugin\u002Fbadwolf-web-irc-client\u002F\u003C\u002Fa>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Credits\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>\u003Cstrong>Author\u003C\u002Fstrong>: Martin Cooper (badwolf72)\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Website\u003C\u002Fstrong>: \u003Ca href=\"https:\u002F\u002Fwww.oo3dmodels.com\" rel=\"nofollow ugc\">https:\u002F\u002Fwww.oo3dmodels.com\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Cstrong>License\u003C\u002Fstrong>: GPL v2 or later\u003C\u002Fli>\n\u003C\u002Ful>\n","WebSocket IRC client for WordPress with real-time messaging, private chats, and desktop notifications. # Badwolf Web IRC Client - Version 5.2.0",267,"2026-01-17T13:50:00.000Z","5.0",[77,78,79,80,20],"chat","irc","messaging","real-time","https:\u002F\u002Fgithub.com\u002Fbadwolf1972\u002Fweb-irc-client","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fbadwolf-web-irc-client.zip",{"slug":84,"name":85,"version":86,"author":87,"author_profile":88,"description":89,"short_description":90,"active_installs":11,"downloaded":91,"rating":11,"num_ratings":11,"last_updated":92,"tested_up_to":93,"requires_at_least":94,"requires_php":95,"tags":96,"homepage":21,"download_link":98,"security_score":23,"vuln_count":11,"unpatched_count":11,"last_vuln_date":24,"fetched_at":25},"chat-webirc","Chat for WebIRC","0.8.1","jtzl","https:\u002F\u002Fprofiles.wordpress.org\u002Fjtzl\u002F","\u003Cp>This plugin provides a shortcode that renders a lightweight IRC client written in vanilla JavaScript. It supports direct WebSocket connections to IRC servers (IRCv3-friendly) and includes an optional WebIRC gateway.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Security-conscious defaults:\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Server allow-list (host:port format), WSS (WebSockets over SSL\u002FTLS) only\u003C\u002Fli>\n\u003Cli>Optional WebSocket subprotocols (e.g., \u003Ccode>text.ircv3.net\u003C\u002Fcode>)\u003C\u002Fli>\n\u003Cli>Optional WS path (e.g., \u003Ccode>\u002Fwebirc\u003C\u002Fcode>)\u003C\u002Fli>\n\u003Cli>Optional CSP connect-src helper (off by default)\u003C\u002Fli>\n\u003Cli>Input sanitization and validation\u003C\u002Fli>\n\u003Cli>Proper escaping of output\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>Features:\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>Image Sharing\u003C\u002Fstrong>: Upload and share images directly in chat with drag-and-drop support\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Custom Avatars\u003C\u002Fstrong>: Personalized user avatars with upload, crop, and preview functionality\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Smart Image Processing\u003C\u002Fstrong>: Automatic optimization, resizing, and format conversion (WebP support)\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Performance Optimized\u003C\u002Fstrong>: Memory-efficient processing with caching and lazy loading\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Mobile-First Images\u003C\u002Fstrong>: Touch-friendly upload interface with responsive image display\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Modern Responsive Design\u003C\u002Fstrong>: Mobile-first approach with adaptive layouts for all screen sizes\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Enhanced Mobile Experience\u003C\u002Fstrong>: Touch-optimized interface with proper virtual keyboard support\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Smart Responsive Behavior\u003C\u002Fstrong>: Overlay sidebar on mobile, collapsible on tablet, side-by-side on desktop\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Editable Username\u003C\u002Fstrong>: Click-to-edit nickname with real-time validation and user persistence\u003C\u002Fli>\n\u003Cli>\u003Cstrong>User Persistence\u003C\u002Fstrong>: Automatic nickname saving for logged-in WordPress users\u003C\u002Fli>\n\u003Cli>Lightweight vanilla TypeScript\u002FJavaScript implementation (no frameworks)\u003C\u002Fli>\n\u003Cli>Fully responsive design with semantic HTML\u003C\u002Fli>\n\u003Cli>Internationalization ready (i18n strings)\u003C\u002Fli>\n\u003Cli>Configurable server allow-list with strict validation\u003C\u002Fli>\n\u003Cli>WebSocket subprotocol support (IRCv3)\u003C\u002Fli>\n\u003Cli>Optional WebIRC gateway fallback\u003C\u002Fli>\n\u003Cli>Comprehensive IRC slash commands: 30+ commands including \u002Fjoin, \u002Fpart, \u002Fnick, \u002Fmsg, \u002Fwhois, \u002Ftopic, \u002Faway, \u002Fhelp, and more\u003C\u002Fli>\n\u003Cli>Automatic nickname generation and collision handling\u003C\u002Fli>\n\u003Cli>Debug logging and connection status indicators\u003C\u002Fli>\n\u003Cli>Optional Content Security Policy (CSP) header generation\u003C\u002Fli>\n\u003Cli>WordPress hooks and filters for extensibility\u003C\u002Fli>\n\u003Cli>Follows WordPress Coding Standards\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Usage\u003C\u002Fh3>\n\u003Cp>\u003Cstrong>Basic Usage:\u003C\u002Fstrong>\u003Cbr \u002F>\nSimply add the shortcode \u003Ccode>[chat_webirc]\u003C\u002Fcode> to any page or post where you want the IRC chat to appear. The plugin will use secure default settings to connect to a test IRC server.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Shortcode Examples:\u003C\u002Fstrong>\u003Cbr \u002F>\n* Basic: \u003Ccode>[chat_webirc]\u003C\u002Fcode> – Uses default server and channel\u003Cbr \u002F>\n* Custom channel: \u003Ccode>[chat_webirc channel=\"#mychannel\"]\u003C\u002Fcode>\u003Cbr \u002F>\n* Custom server: \u003Ccode>[chat_webirc server=\"irc.example.com:7443\" channel=\"#general\"]\u003C\u002Fcode>\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Available IRC Commands:\u003C\u002Fstrong>\u003Cbr \u002F>\nOnce the chat is loaded, users can use these commands:\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Basic Commands:\u003C\u002Fstrong>\u003Cbr \u002F>\n* \u003Ccode>\u002Fjoin #channel\u003C\u002Fcode> – Join a channel\u003Cbr \u002F>\n* \u003Ccode>\u002Fpart [#channel]\u003C\u002Fcode> – Leave current or specified channel\u003Cbr \u002F>\n* \u003Ccode>\u002Fnick newname\u003C\u002Fcode> – Change nickname\u003Cbr \u002F>\n* \u003Ccode>\u002Fquit [message]\u003C\u002Fcode> – Disconnect\u003Cbr \u002F>\n* \u003Ccode>\u002Fhelp\u003C\u002Fcode> – Show all available commands\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Communication:\u003C\u002Fstrong>\u003Cbr \u002F>\n* \u003Ccode>\u002Fmsg \u003Cnick> \u003Cmessage>\u003C\u002Fcode> – Send private message\u003Cbr \u002F>\n* \u003Ccode>\u002Fnotice \u003Ctarget> \u003Cmessage>\u003C\u002Fcode> – Send notice message\u003Cbr \u002F>\n* \u003Ccode>\u002Fme \u003Caction>\u003C\u002Fcode> – Send action message\u003Cbr \u002F>\n* \u003Ccode>\u002Fquery \u003Cnick>\u003C\u002Fcode> – Open private chat context\u003C\u002Fp>\n\u003Cp>\u003Cstrong>User & Channel Info:\u003C\u002Fstrong>\u003Cbr \u002F>\n* \u003Ccode>\u002Fwhois \u003Cnick>\u003C\u002Fcode> – Get detailed user information\u003Cbr \u002F>\n* \u003Ccode>\u002Fwho [channel]\u003C\u002Fcode> – List users in channel\u003Cbr \u002F>\n* \u003Ccode>\u002Flist [pattern]\u003C\u002Fcode> – List available channels\u003Cbr \u002F>\n* \u003Ccode>\u002Fnames [channel]\u003C\u002Fcode> – List nicknames in channel\u003Cbr \u002F>\n* \u003Ccode>\u002Ftopic [text]\u003C\u002Fcode> – View\u002Fset channel topic\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Status & Utility:\u003C\u002Fstrong>\u003Cbr \u002F>\n* \u003Ccode>\u002Faway [message]\u003C\u002Fcode> – Set away status\u003Cbr \u002F>\n* \u003Ccode>\u002Fback\u003C\u002Fcode> – Remove away status\u003Cbr \u002F>\n* \u003Ccode>\u002Fping \u003Cnick>\u003C\u002Fcode> – Ping user\u003Cbr \u002F>\n* \u003Ccode>\u002Fversion [nick]\u003C\u002Fcode> – Get version info\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Advanced Commands:\u003C\u002Fstrong>\u003Cbr \u002F>\n* \u003Ccode>\u002Fctcp \u003Cnick> \u003Ccommand>\u003C\u002Fcode> – Send CTCP command\u003Cbr \u002F>\n* \u003Ccode>\u002Fmotd [server]\u003C\u002Fcode> – View message of the day\u003Cbr \u002F>\n* \u003Ccode>\u002Fstats \u003Cquery> [server]\u003C\u002Fcode> – View server statistics\u003Cbr \u002F>\n* \u003Ccode>\u002Fraw \u003Ccommand>\u003C\u002Fcode> – Send raw IRC command (if enabled)\u003C\u002Fp>\n\u003Cp>Type \u003Ccode>\u002Fhelp\u003C\u002Fcode> in the chat for the complete command reference.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Configuration:\u003C\u002Fstrong>\u003Cbr \u002F>\nGo to \u003Cstrong>Settings \u003Cspan aria-hidden=\"true\" class=\"wp-exclude-emoji\">→\u003C\u002Fspan> Chat for WebIRC\u003C\u002Fstrong> in your WordPress admin to customize servers, channels, and security options.\u003C\u002Fp>\n\u003Ch3>Notes\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>Some public IRC networks may restrict WebSocket connections to certain origins. The included test server permits connections for testing purposes.\u003C\u002Fli>\n\u003Cli>Do not send sensitive information. This client is intentionally minimal and does not yet support SASL authentication.\u003C\u002Fli>\n\u003C\u002Ful>\n","A framework-light WordPress plugin that embeds a WebSocket IRC client.",154,"2025-11-18T16:05:00.000Z","6.8.5","6.8","8.2",[77,97,78,80,20],"communication","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fchat-webirc.0.8.1.zip",{"slug":100,"name":101,"version":102,"author":103,"author_profile":104,"description":105,"short_description":106,"active_installs":11,"downloaded":107,"rating":108,"num_ratings":109,"last_updated":110,"tested_up_to":111,"requires_at_least":112,"requires_php":113,"tags":114,"homepage":116,"download_link":117,"security_score":64,"vuln_count":11,"unpatched_count":11,"last_vuln_date":24,"fetched_at":25},"livechat-lazucrub","LiveChat LazucruB","1.2","Chirukin Bogdan","https:\u002F\u002Fprofiles.wordpress.org\u002Fcheater111\u002F","\u003Cp>This plugin is a client of \u003Ca href=\"http:\u002F\u002F13.48.132.210\u002F\" rel=\"nofollow ugc\">RealTime Web Chat\u003C\u002Fa> websocket service, build real time chat on your site.\u003Cbr \u002F>\nThis service give posibilities to create and moderation your room.\u003C\u002Fp>\n\u003Ch3>Install\u003C\u002Fh3>\n\u003Col>\n\u003Cli>Upload install and activated this plugin after wordpress.org repository or download zip;\u003C\u002Fli>\n\u003Cli>Create account on \u003Ca href=\"http:\u002F\u002F13.48.132.210\u002Fmy-account\u002F\" rel=\"nofollow ugc\">RealTime Web Chat\u003C\u002Fa>;\u003C\u002Fli>\n\u003Cli>Insert public and private key on page ‘Settings > LiveChat LazucruB’\u003C\u002Fli>\n\u003Cli>Type shortcode [real-time-chat] to show chat window on page.\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Ch3>Credits\u003C\u002Fh3>\n\u003Col>\n\u003Cli>jQuery\u003C\u002Fli>\n\u003Cli>jQuery UI Accordeon\u003C\u002Fli>\n\u003Cli>jQuery Templates\u003C\u002Fli>\n\u003Cli>Emoji Picker\u003C\u002Fli>\n\u003C\u002Fol>\n","This plugin is a client of RealTime Web Chat websocket service, build real time chat on your site.",8088,20,1,"2020-12-05T09:52:00.000Z","5.6.17","4.7","7.0",[77,115,80,20],"online","http:\u002F\u002Fec2-13-48-132-210.eu-north-1.compute.amazonaws.com\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Flivechat-lazucrub.zip",{"attackSurface":119,"codeSignals":169,"taintFlows":196,"riskAssessment":197,"analyzedAt":203},{"hooks":120,"ajaxHandlers":145,"restRoutes":146,"shortcodes":162,"cronEvents":167,"entryPointCount":168,"unprotectedCount":11},[121,126,130,134,138,141],{"type":122,"name":123,"callback":123,"file":124,"line":125},"action","admin_menu","mesh-plug.php",25,{"type":122,"name":127,"callback":128,"file":124,"line":129},"plugins_loaded","maybe_upgrade",26,{"type":122,"name":131,"callback":132,"file":124,"line":133},"admin_init","register_settings",27,{"type":122,"name":135,"callback":136,"file":124,"line":137},"wp_enqueue_scripts","frontend_assets",29,{"type":122,"name":139,"callback":140,"file":124,"line":31},"rest_api_init","register_rest_routes",{"type":122,"name":142,"callback":143,"priority":109,"file":124,"line":144},"wp_footer","print_mounts",702,[],[147,155],{"namespace":148,"route":149,"methods":150,"callback":152,"permissionCallback":153,"file":124,"line":154},"mesh-plug\u002Fv1","\u002Fsnapshot",[151],"GET","rest_snapshot","rest_can_snapshot",722,{"namespace":148,"route":156,"methods":157,"callback":159,"permissionCallback":160,"file":124,"line":161},"\u002Fingest",[158],"POST","rest_ingest","rest_can_ingest",728,[163],{"tag":164,"callback":165,"file":124,"line":166},"mesh_plug","shortcode",32,[],3,{"dangerousFunctions":170,"sqlUsage":171,"outputEscaping":174,"fileOperations":11,"externalRequests":11,"nonceChecks":11,"capabilityChecks":168,"bundledLibraries":195},[],{"prepared":172,"raw":11,"locations":173},9,[],{"escaped":175,"rawEcho":172,"locations":176},68,[177,180,181,183,185,187,189,191,193],{"file":124,"line":178,"context":179},235,"raw output",{"file":124,"line":73,"context":179},{"file":124,"line":182,"context":179},300,{"file":124,"line":184,"context":179},301,{"file":124,"line":186,"context":179},323,{"file":124,"line":188,"context":179},332,{"file":124,"line":190,"context":179},349,{"file":124,"line":192,"context":179},401,{"file":124,"line":194,"context":179},410,[],[],{"summary":198,"deductions":199},"The \"mesh-plug\" v1.3.1 plugin exhibits a strong security posture based on the provided static analysis and vulnerability history.  The plugin demonstrates good practices by utilizing prepared statements for all SQL queries and properly escaping a high percentage of its outputs.  Furthermore, the absence of any recorded vulnerabilities or CVEs historically, along with the lack of dangerous functions, file operations, or external HTTP requests, suggests a well-maintained and secure codebase.\n\nThe static analysis indicates a minimal attack surface, with all identified entry points (AJAX handlers, REST API routes, and shortcodes) appearing to be protected by authentication or permission checks. The taint analysis revealing zero flows with unsanitized paths further reinforces the impression of a secure plugin. The presence of capability checks, while not explicitly tied to specific functions in this analysis, is a positive sign of access control implementation.\n\nOverall, \"mesh-plug\" v1.3.1 appears to be a highly secure plugin. The strengths lie in its robust SQL handling, good output escaping, limited attack surface, and clean vulnerability history. The primary area of slight concern, though minor given the overall context, is the absence of nonce checks on AJAX handlers, which is a common WordPress security practice to prevent CSRF attacks. However, without specific details on the functionality of these AJAX handlers, it's difficult to definitively assess the actual risk.",[200],{"reason":201,"points":202},"0 Nonce checks on AJAX handlers",5,"2026-03-17T06:27:36.072Z",{"wat":205,"direct":214},{"assetPaths":206,"generatorPatterns":209,"scriptPaths":210,"versionParams":211},[207,208],"\u002Fwp-content\u002Fplugins\u002Fmesh-plug\u002Fmesh-plug.css","\u002Fwp-content\u002Fplugins\u002Fmesh-plug\u002Fmesh-plug.js",[],[208],[212,213],"mesh-plug\u002Fmesh-plug.css?ver=","mesh-plug\u002Fmesh-plug.js?ver=",{"cssClasses":215,"htmlComments":216,"htmlAttributes":217,"restEndpoints":233,"jsGlobals":237,"shortcodeOutput":240},[],[],[218,219,220,221,222,223,224,225,226,227,228,229,230,231,232],"data-broker-url","data-topic","data-username","data-password","data-client-prefix","data-keepalive","data-reconnect-ms","data-debug","data-autoconnect","data-server-cache","data-ingest-token","data-observer-poll-ms","data-offline-after-sec","data-store-packets","data-packets-retention-hours",[234,235,236],"\u002Fwp-json\u002Fmesh-plug\u002Fv1\u002Fnodes","\u002Fwp-json\u002Fmesh-plug\u002Fv1\u002Fpackets","\u002Fwp-json\u002Fmesh-plug\u002Fv1\u002Fconfig",[238,239],"meshPlugConfig","meshPlug",[241],"[mesh_plug]"]