[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$fsOhiI1PXbG5-LdcnLKFuo0dXOycJNI1VDs1NzO8jTB8":3},{"slug":4,"name":5,"version":6,"author":7,"author_profile":8,"description":9,"short_description":10,"active_installs":11,"downloaded":12,"rating":13,"num_ratings":14,"last_updated":15,"tested_up_to":16,"requires_at_least":17,"requires_php":18,"tags":19,"homepage":23,"download_link":24,"security_score":25,"vuln_count":26,"unpatched_count":26,"last_vuln_date":27,"fetched_at":28,"vulnerabilities":29,"developer":30,"crawl_stats":27,"alternatives":37,"analysis":38,"fingerprints":151},"link-monitor","Link Monitor","1.0","ddweb","https:\u002F\u002Fprofiles.wordpress.org\u002Fddweb\u002F","\u003Cp>Link Monitor is a FREE WordPress plugin that will help you to hide URLs from posts\u002Fpages and comments.\u003C\u002Fp>\n\u003Cp>Example:\u003Cbr \u002F>\nOriginal Link: AnOrdinaryWebsite\u002Findex.php?refId=234\u003Cbr \u002F>\nHidden Link: YourGreatWebsite\u002F?goto=aHR0cDovL2Rkd2ViLmV1\u003C\u002Fp>\n\u003Cp>Link Monitor works with custom posts, can be disabled for all or for choosen pages\u002Fposts.\u003C\u002Fp>\n","Link Monitor is a FREE WordPress plugin that will help you to hide URLs from posts\u002Fpages and comments.",10,1625,100,1,"2016-10-28T15:22:00.000Z","4.6.30","3.0.1","",[20,21,22],"hide-links","hide-urls","monitorize-links","http:\u002F\u002Fddweb.eu\u002Flink-hide-monitor\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Flink-monitor.zip",85,0,null,"2026-03-15T15:16:48.613Z",[],{"slug":7,"display_name":31,"profile_url":8,"plugin_count":32,"total_installs":13,"avg_security_score":33,"avg_patch_time_days":34,"trust_score":35,"computed_at":36},"AddWeb Solution",8,90,30,87,"2026-04-04T05:44:23.491Z",[],{"attackSurface":39,"codeSignals":81,"taintFlows":114,"riskAssessment":142,"analyzedAt":150},{"hooks":40,"ajaxHandlers":68,"restRoutes":77,"shortcodes":78,"cronEvents":79,"entryPointCount":80,"unprotectedCount":26},[41,46,48,52,56,60,64],{"type":42,"name":43,"callback":44,"priority":14,"file":45,"line":32},"action","add_meta_boxes","show_links","inc\\admin.php",{"type":42,"name":43,"callback":47,"priority":14,"file":45,"line":11},"links_settings",{"type":42,"name":49,"callback":50,"priority":14,"file":45,"line":51},"save_post","links_settings_save",12,{"type":42,"name":53,"callback":54,"priority":14,"file":45,"line":55},"admin_print_styles","add_style",14,{"type":42,"name":57,"callback":58,"priority":14,"file":45,"line":59},"admin_print_scripts","add_scripts",16,{"type":42,"name":61,"callback":62,"file":45,"line":63},"admin_menu","settings_page",18,{"type":42,"name":65,"callback":66,"file":45,"line":67},"admin_init","settings_page_init",20,[69,74],{"action":70,"nopriv":71,"callback":70,"hasNonce":72,"hasCapCheck":71,"file":45,"line":73},"link_get_stats",false,true,22,{"action":75,"nopriv":71,"callback":75,"hasNonce":72,"hasCapCheck":71,"file":45,"line":76},"post_get_stats",24,[],[],[],2,{"dangerousFunctions":82,"sqlUsage":83,"outputEscaping":85,"fileOperations":26,"externalRequests":26,"nonceChecks":112,"capabilityChecks":14,"bundledLibraries":113},[],{"prepared":51,"raw":26,"locations":84},[],{"escaped":11,"rawEcho":51,"locations":86},[87,90,92,94,96,98,100,102,104,106,108,110],{"file":45,"line":88,"context":89},65,"raw output",{"file":45,"line":91,"context":89},69,{"file":45,"line":93,"context":89},91,{"file":45,"line":95,"context":89},119,{"file":45,"line":97,"context":89},122,{"file":45,"line":99,"context":89},123,{"file":45,"line":101,"context":89},124,{"file":45,"line":103,"context":89},208,{"file":45,"line":105,"context":89},225,{"file":45,"line":107,"context":89},234,{"file":45,"line":109,"context":89},255,{"file":45,"line":111,"context":89},264,3,[],[115,134],{"entryPoint":116,"graph":117,"unsanitizedCount":14,"severity":133},"init (inc\\redirect.php:6)",{"nodes":118,"edges":131},[119,125],{"id":120,"type":121,"label":122,"file":123,"line":124},"n0","source","$_GET","inc\\redirect.php",11,{"id":126,"type":127,"label":128,"file":123,"line":129,"wp_function":130},"n1","sink","header() [Header Injection]",15,"header",[132],{"from":120,"to":126,"sanitized":71},"medium",{"entryPoint":135,"graph":136,"unsanitizedCount":14,"severity":133},"\u003Credirect> (inc\\redirect.php:0)",{"nodes":137,"edges":140},[138,139],{"id":120,"type":121,"label":122,"file":123,"line":124},{"id":126,"type":127,"label":128,"file":123,"line":129,"wp_function":130},[141],{"from":120,"to":126,"sanitized":71},{"summary":143,"deductions":144},"The link-monitor plugin v1.0 exhibits a generally positive security posture due to its adherence to several good security practices. Notably, it uses prepared statements for all SQL queries and implements nonce checks on its entry points. The absence of known CVEs and a clean vulnerability history further bolster confidence in its current security state.  However, the static analysis reveals some areas for improvement. The plugin has a moderate attack surface with two AJAX handlers, and while these appear to have authorization checks, the analysis indicates zero unprotected entry points, suggesting these checks might be sufficient.  A significant concern arises from the taint analysis, which identified two flows with unsanitized paths. Although these did not result in critical or high severity vulnerabilities during static analysis, unsanitized paths are a potential precursor to security flaws. Furthermore, the output escaping is only properly implemented for 45% of outputs, leaving a substantial portion vulnerable to cross-site scripting (XSS) attacks if user-supplied data is not handled with extreme care before being displayed. The plugin's strengths lie in its database query security and nonce implementation, but the lack of robust output escaping and the presence of unsanitized paths warrant careful consideration for future development.",[145,147],{"reason":146,"points":32},"Output escaping is insufficient (45% proper)",{"reason":148,"points":149},"Taint analysis found 2 unsanitized path flows",6,"2026-03-17T00:37:49.256Z",{"wat":152,"direct":160},{"assetPaths":153,"generatorPatterns":156,"scriptPaths":157,"versionParams":158},[154,155],"\u002Fwp-content\u002Fplugins\u002Flink-monitor\u002Fassets\u002Flink-monitor.css","\u002Fwp-content\u002Fplugins\u002Flink-monitor\u002Fassets\u002Flink-monitor.js",[],[155],[159],"link-monitor-js?ver=1.0.0",{"cssClasses":161,"htmlComments":165,"htmlAttributes":166,"restEndpoints":173,"jsGlobals":174,"shortcodeOutput":175},[162,163,164],"link-monitor-post-links","link-monitor-post-settings","lm-check",[],[167,168,169,170,171,172],"data-ajax-url","data-ajax-action","data-ajax-nonce","data-post-id","data-link","data-link-monitor-stats",[],[],[]]