[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$fx17OJkYGoyBu_3qycLe0ypg684djJfOUnCBzG29Dut0":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":15,"tags":18,"homepage":15,"download_link":20,"security_score":13,"vuln_count":21,"unpatched_count":21,"last_vuln_date":22,"fetched_at":23,"vulnerabilities":24,"developer":25,"crawl_stats":22,"alternatives":33,"analysis":34,"fingerprints":126},"keyword-difficulty-tool","Keyword Difficulty Tool","1.0","metric buzz","https:\u002F\u002Fprofiles.wordpress.org\u002Fmetricbuzz\u002F","\u003Cp>\u003Ca href=\"https:\u002F\u002Fgoo.gl\u002FDXU8uV\" rel=\"nofollow ugc\">Keyword Difficulty Tool Demo:\u003C\u002Fa>\u003C\u002Fp>\n\u003Cp>Not all keywords are easier to rank, use our Keyword Difficulty Tool to find an easy one to get ranked.\u003C\u002Fp>\n\u003Cp>TIP: We suggest you pick a low competition keyword if you run a small business site. 3 word phrases like ‘keyword difficulty tool’ example is a good choice to pick a less competitive niche.\u003C\u002Fp>\n\u003Cp>Note: If the tool stops responding, that means too many queries from Google, you might want to wait another day to check again.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Plugin Main Features are:\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Col>\n\u003Cli>The tool is great for finding easier to rank keyword phrases, the competition is based by Alexa global ranking. Sites with higher Alexa Rank means harder to compete with.\u003C\u002Fli>\n\u003Cli>Mobile responsive design\u003C\u002Fli>\n\u003Cli>Animated report graphic design\u003C\u002Fli>\n\u003Cli>Instant keyword search results\u003C\u002Fli>\n\u003C\u002Fol>\n","Be smart, competitive keywords are hard to rank, let's find an easier one.",10,1534,100,1,"","4.5.33","3.0.1",[19,4],"keyword-difficulty-checker","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fkeyword-difficulty-tool.zip",0,null,"2026-03-15T10:48:56.248Z",[],{"slug":26,"display_name":7,"profile_url":8,"plugin_count":27,"total_installs":28,"avg_security_score":29,"avg_patch_time_days":30,"trust_score":31,"computed_at":32},"metricbuzz",2,20,93,30,89,"2026-04-03T20:08:54.647Z",[],{"attackSurface":35,"codeSignals":47,"taintFlows":95,"riskAssessment":115,"analyzedAt":125},{"hooks":36,"ajaxHandlers":43,"restRoutes":44,"shortcodes":45,"cronEvents":46,"entryPointCount":21,"unprotectedCount":21},[37],{"type":38,"name":39,"callback":40,"file":41,"line":42},"action","admin_menu","KDT_AdminMenu","keyword-difficulty-tool.php",22,[],[],[],[],{"dangerousFunctions":48,"sqlUsage":49,"outputEscaping":51,"fileOperations":14,"externalRequests":93,"nonceChecks":14,"capabilityChecks":27,"bundledLibraries":94},[],{"prepared":21,"raw":21,"locations":50},[],{"escaped":52,"rawEcho":53,"locations":54},4,19,[55,59,60,62,64,66,68,70,72,74,76,78,80,82,84,86,88,90,92],{"file":56,"line":57,"context":58},"KDT_report.php",29,"raw output",{"file":56,"line":57,"context":58},{"file":56,"line":61,"context":58},65,{"file":56,"line":63,"context":58},76,{"file":56,"line":65,"context":58},77,{"file":56,"line":67,"context":58},78,{"file":56,"line":69,"context":58},81,{"file":56,"line":71,"context":58},103,{"file":56,"line":73,"context":58},114,{"file":56,"line":75,"context":58},115,{"file":56,"line":77,"context":58},116,{"file":56,"line":79,"context":58},119,{"file":56,"line":81,"context":58},139,{"file":56,"line":83,"context":58},150,{"file":56,"line":85,"context":58},151,{"file":56,"line":87,"context":58},152,{"file":56,"line":89,"context":58},155,{"file":56,"line":91,"context":58},223,{"file":56,"line":91,"context":58},3,[],[96],{"entryPoint":97,"graph":98,"unsanitizedCount":113,"severity":114},"\u003CKDT_report> (KDT_report.php:0)",{"nodes":99,"edges":110},[100,105],{"id":101,"type":102,"label":103,"file":56,"line":104},"n0","source","$_POST (x5)",14,{"id":106,"type":107,"label":108,"file":56,"line":57,"wp_function":109},"n1","sink","echo() [XSS]","echo",[111],{"from":101,"to":106,"sanitized":112},false,5,"low",{"summary":116,"deductions":117},"The \"keyword-difficulty-tool\" v1.0 plugin exhibits a strong security posture based on the provided static analysis.  The complete absence of AJAX handlers, REST API routes, shortcodes, and cron events as entry points significantly limits the potential attack surface.  Furthermore, the use of prepared statements for all SQL queries is a commendable practice. The presence of nonce and capability checks, even with a small number, indicates an awareness of security principles.\n\nHowever, a critical concern arises from the taint analysis. A single analyzed flow with an unsanitized path, while not classified as critical or high severity, still represents a potential risk. This is exacerbated by the low percentage of properly escaped output (17%), suggesting that other unanalyzed output points might be vulnerable to cross-site scripting (XSS) attacks. The single file operation also warrants closer inspection to ensure it is handled securely.\n\nWith no recorded vulnerability history, the plugin appears to have a clean track record, which is a positive indicator.  However, the absence of vulnerabilities does not guarantee future safety, especially given the identified taint flow and output escaping issues.  In conclusion, while the plugin has foundational security strengths, the identified taint flow and poor output escaping practices are weaknesses that need to be addressed to achieve a more robust security profile.",[118,120,123],{"reason":119,"points":11},"Unsanitized path in taint flow",{"reason":121,"points":122},"Low percentage of properly escaped output",8,{"reason":124,"points":93},"Presence of file operations","2026-03-16T23:19:22.056Z",{"wat":127,"direct":136},{"assetPaths":128,"generatorPatterns":131,"scriptPaths":132,"versionParams":133},[129,130],"\u002Fwp-content\u002Fplugins\u002Fkeyword-difficulty-tool\u002Fcss\u002Fbootstrap.min.css","\u002Fwp-content\u002Fplugins\u002Fkeyword-difficulty-tool\u002Fimages\u002Ficon.png",[],[],[134,135],"keyword-difficulty-tool\u002Fcss\u002Fbootstrap.min.css?ver=","keyword-difficulty-tool\u002Fimages\u002Ficon.png?ver=",{"cssClasses":137,"htmlComments":140,"htmlAttributes":141,"restEndpoints":146,"jsGlobals":147,"shortcodeOutput":148},[138,139],"container","img-responsive",[],[142,143,144,145],"name=\"keyword\"","id=\"keyword\"","name=\"se\"","name=\"tld\"",[],[],[]]