[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$f0tM80Qh7kLTXzDREQfa2Nx01yrxPoogBA4l6wKXJeBk":3,"$fPSzV3ll4yaGKDkOlEAxDYMl40i-bYdD6ijjAbFHjnfY":222,"$f23thbV7w326GW534e5q9dLwnBsbTwMGahPxarsbXbi8":227},{"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":13,"last_updated":14,"tested_up_to":15,"requires_at_least":16,"requires_php":17,"tags":18,"homepage":20,"download_link":21,"security_score":22,"vuln_count":13,"unpatched_count":13,"last_vuln_date":23,"fetched_at":24,"discovery_status":25,"vulnerabilities":26,"developer":27,"crawl_stats":23,"alternatives":32,"analysis":33,"fingerprints":195},"disc-golf-metrix","Disc Golf Metrix WP","2.0.0","markosaviauk","https:\u002F\u002Fprofiles.wordpress.org\u002Fmarkosaviauk\u002F","\u003Cp>Embed \u003Ca href=\"https:\u002F\u002Fdiscgolfmetrix.com\" rel=\"nofollow ugc\">discgolfmetrix.com\u003C\u002Fa> content into wordpress using shortcodes \u003Ccode>[discgolfmetrix_results]\u003C\u002Fcode> and \u003Ccode>[discgolfmetrix_registration_list]\u003C\u002Fcode> providing a competition ID and optionally a preselected filter. Examples:\u003C\u002Fp>\n\u003Cpre>\u003Ccode>[discgolfmetrix_results competition_id=\"999999\"]\n[discgolfmetrix_results competition_id=\"999999\" players=\"Firstname Lastname, John Doe\"]\n[discgolfmetrix_results competition_id=\"999999\" class=\"MPO\"]\n[discgolfmetrix_registration_list competition_id=\"999999\"]\n\u003C\u002Fcode>\u003C\u002Fpre>\n","Embed discgolfmetrix.com content into wordpress",10,1419,0,"2017-10-04T12:14:00.000Z","4.8.28","4.6","",[19],"discgolfmetrix","http:\u002F\u002Fdiscgolfmetrix.com","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fdisc-golf-metrix.zip",85,null,"2026-04-16T10:56:18.058Z","no_bundle",[],{"slug":7,"display_name":7,"profile_url":8,"plugin_count":28,"total_installs":11,"avg_security_score":22,"avg_patch_time_days":29,"trust_score":30,"computed_at":31},1,30,84,"2026-08-29T21:01:40.561Z",[],{"attackSurface":34,"codeSignals":74,"taintFlows":181,"riskAssessment":182,"analyzedAt":194},{"hooks":35,"ajaxHandlers":61,"restRoutes":62,"shortcodes":63,"cronEvents":72,"entryPointCount":73,"unprotectedCount":13},[36,43,47,52,56],{"type":37,"name":38,"callback":39,"priority":40,"file":41,"line":42},"action","admin_menu","add_admin_menu_item",99,"discgolfmetrix-settings.php",15,{"type":37,"name":44,"callback":45,"file":41,"line":46},"admin_init","register_settings",16,{"type":48,"name":49,"callback":50,"file":41,"line":51},"filter","plugin_action_links_discgolfmetrix\u002Fdiscgolfmetrix.php","add_plugin_action_links",17,{"type":37,"name":53,"callback":54,"file":41,"line":55},"admin_enqueue_scripts","enqueue_scripts_admin",18,{"type":37,"name":57,"callback":58,"priority":40,"file":59,"line":60},"wp_enqueue_scripts","enqueue_scripts_public","discgolfmetrix.php",42,[],[],[64,68],{"tag":65,"callback":66,"file":59,"line":67},"discgolfmetrix_results","shortcode_results",40,{"tag":69,"callback":70,"file":59,"line":71},"discgolfmetrix_registration_list","shortcode_registration_list",41,[],2,{"dangerousFunctions":75,"sqlUsage":76,"outputEscaping":78,"fileOperations":13,"externalRequests":28,"nonceChecks":13,"capabilityChecks":13,"bundledLibraries":180},[],{"prepared":13,"raw":13,"locations":77},[],{"escaped":28,"rawEcho":79,"locations":80},55,[81,85,86,88,90,92,93,95,97,99,100,102,103,105,107,109,111,113,115,117,118,120,121,123,124,126,127,129,131,133,134,136,138,140,142,144,146,148,150,152,154,155,156,158,160,162,164,165,166,168,170,172,174,176,178],{"file":82,"line":83,"context":84},"discgolfmetrix-results-table.php",52,"raw output",{"file":82,"line":79,"context":84},{"file":82,"line":87,"context":84},57,{"file":82,"line":89,"context":84},58,{"file":82,"line":91,"context":84},65,{"file":82,"line":91,"context":84},{"file":82,"line":94,"context":84},70,{"file":82,"line":96,"context":84},73,{"file":82,"line":98,"context":84},88,{"file":82,"line":98,"context":84},{"file":82,"line":101,"context":84},109,{"file":82,"line":101,"context":84},{"file":82,"line":104,"context":84},110,{"file":82,"line":106,"context":84},118,{"file":82,"line":108,"context":84},125,{"file":82,"line":110,"context":84},127,{"file":82,"line":112,"context":84},129,{"file":82,"line":114,"context":84},130,{"file":82,"line":116,"context":84},132,{"file":82,"line":116,"context":84},{"file":82,"line":119,"context":84},133,{"file":82,"line":119,"context":84},{"file":82,"line":122,"context":84},135,{"file":82,"line":122,"context":84},{"file":82,"line":125,"context":84},136,{"file":82,"line":125,"context":84},{"file":82,"line":128,"context":84},168,{"file":82,"line":130,"context":84},171,{"file":82,"line":132,"context":84},183,{"file":82,"line":132,"context":84},{"file":82,"line":135,"context":84},190,{"file":82,"line":137,"context":84},195,{"file":82,"line":139,"context":84},197,{"file":82,"line":141,"context":84},202,{"file":82,"line":143,"context":84},204,{"file":41,"line":145,"context":84},68,{"file":41,"line":147,"context":84},104,{"file":41,"line":149,"context":84},105,{"file":41,"line":151,"context":84},108,{"file":41,"line":153,"context":84},115,{"file":41,"line":106,"context":84},{"file":41,"line":108,"context":84},{"file":41,"line":157,"context":84},145,{"file":59,"line":159,"context":84},246,{"file":59,"line":161,"context":84},251,{"file":59,"line":163,"context":84},274,{"file":59,"line":163,"context":84},{"file":59,"line":163,"context":84},{"file":59,"line":167,"context":84},279,{"file":59,"line":169,"context":84},306,{"file":59,"line":171,"context":84},310,{"file":59,"line":173,"context":84},325,{"file":59,"line":175,"context":84},329,{"file":59,"line":177,"context":84},344,{"file":59,"line":179,"context":84},353,[],[],{"summary":183,"deductions":184},"The 'disc-golf-metrix' v2.0.0 plugin exhibits a generally good security posture based on the provided static analysis.  The absence of dangerous functions, SQL injection vulnerabilities through prepared statements, file operations, and external HTTP requests is a significant strength.  Furthermore, the lack of known vulnerabilities and CVEs is a positive indicator of past security efforts.\n\nHowever, several concerns warrant attention. The extremely low percentage of properly escaped output (2%) presents a high risk of Cross-Site Scripting (XSS) vulnerabilities.  Additionally, the absence of nonce checks and capability checks on the plugin's entry points (shortcodes) means that these functions could potentially be triggered by unauthenticated or unauthorized users, leading to unintended actions or data exposure. The presence of external HTTP requests, while not inherently a vulnerability, always introduces a potential attack vector if the external service is compromised or manipulated.\n\nIn conclusion, while the plugin avoids many common and critical vulnerabilities, the severe lack of output escaping and the absence of authorization checks on its shortcodes are significant weaknesses that expose it to XSS and potential unauthorized access risks. The plugin's vulnerability history is clean, which is positive, but the current static analysis reveals areas that require immediate remediation to ensure robust security.",[185,187,190,192],{"reason":186,"points":42},"Severely unescaped output",{"reason":188,"points":189},"Missing nonce checks",5,{"reason":191,"points":189},"Missing capability checks",{"reason":193,"points":73},"External HTTP requests present","2026-03-16T23:29:38.374Z",{"wat":196,"direct":206},{"assetPaths":197,"generatorPatterns":201,"scriptPaths":202,"versionParams":203},[198,199,200],"\u002Fwp-content\u002Fplugins\u002Fdisc-golf-metrix\u002Fstyles\u002Fdiscgolfmetrix-results.css","\u002Fwp-content\u002Fplugins\u002Fdisc-golf-metrix\u002Fscripts\u002Fdiscgolfmetrix-results.js","\u002Fwp-content\u002Fplugins\u002Fdisc-golf-metrix\u002Fstyles\u002Fdiscgolfmetrix-registration-list.css",[],[199],[204,205],"discgolfmetrix-results.css?ver=","discgolfmetrix-results.js?ver=",{"cssClasses":207,"htmlComments":213,"htmlAttributes":214,"restEndpoints":216,"jsGlobals":217,"shortcodeOutput":219},[208,209,210,211,212],"discgolfmetrix-results","discgolfmetrix-results-filter","discgolfmetrix-results-table","discgolfmetrix-results-table-container","discgolfmetrix-registration-list",[],[215],"data-competition-id",[],[218],"discgolfmetrixResults",[220,221],"\u003Cdiv class='discgolfmetrix-results'","\u003Cdiv class='discgolfmetrix-registration-list'",{"error":223,"url":224,"statusCode":225,"statusMessage":226,"message":226},true,"http:\u002F\u002Flocalhost\u002Fapi\u002Fplugins\u002Fdisc-golf-metrix\u002Fbundle",404,"no bundle for this plugin yet",{"slug":4,"current_version":6,"total_versions":13,"versions":228},[]]