[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$f_JIjKl8WkRXEAHy89uZgHCB-5Ha46cRrywOvcGduh2k":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":13,"vuln_count":11,"unpatched_count":11,"last_vuln_date":25,"fetched_at":26,"vulnerabilities":27,"developer":28,"crawl_stats":25,"alternatives":35,"analysis":36,"fingerprints":125},"computy-view-percent","Computy view percent","1.5.4","calliko","https:\u002F\u002Fprofiles.wordpress.org\u002Fcalliko\u002F","\u003Cp>The plugin does not require any settings and works automatically for standard WordPress posts.\u003Cbr \u002F>\n When scrolling the page, the red bar at the top increases.\u003C\u002Fp>\n\u003Ch3>Testing\u003C\u002Fh3>\n\u003Cp>You can test the plugin on \u003Ca href=\"https:\u002F\u002Fdemo.tastewp.com\u002Fcomputy-view-percent\" rel=\"nofollow ugc\">\u003Cstrong>this page\u003C\u002Fstrong>\u003C\u002Fa>\u003C\u002Fp>\n","When scrolling the page, the red bar at the top increases.",0,1950,100,1,"2025-12-31T02:53:00.000Z","6.9.4","4.3","",[20,21,22],"percentage-of-reading","scroll-line","view-percent","https:\u002F\u002Fcomputy.ru\u002Fblog\u002Fplagin-validacii-formy-kommentariev-v-wordpress\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fcomputy-view-percent.1.5.4.zip",null,"2026-03-15T15:16:48.613Z",[],{"slug":7,"display_name":7,"profile_url":8,"plugin_count":29,"total_installs":30,"avg_security_score":31,"avg_patch_time_days":32,"trust_score":33,"computed_at":34},6,330,99,51,87,"2026-04-04T11:07:34.836Z",[],{"attackSurface":37,"codeSignals":76,"taintFlows":113,"riskAssessment":114,"analyzedAt":124},{"hooks":38,"ajaxHandlers":72,"restRoutes":73,"shortcodes":74,"cronEvents":75,"entryPointCount":11,"unprotectedCount":11},[39,45,49,53,57,61,64,66,68],{"type":40,"name":41,"callback":42,"file":43,"line":44},"action","admin_menu","add_admin_menu","class.vp-computy-admin.php",7,{"type":40,"name":46,"callback":47,"file":43,"line":48},"admin_enqueue_scripts","load_scripts",8,{"type":40,"name":50,"callback":51,"file":43,"line":52},"admin_init","plugin_settings",11,{"type":40,"name":54,"callback":54,"file":55,"line":56},"init","computy-view-percent.php",20,{"type":40,"name":58,"callback":59,"file":55,"line":60},"wp_footer","vp_computy_script",57,{"type":40,"name":58,"callback":62,"file":55,"line":63},"vp_computy_style",58,{"type":40,"name":58,"callback":59,"file":55,"line":65},61,{"type":40,"name":58,"callback":62,"file":55,"line":67},62,{"type":40,"name":69,"callback":70,"file":55,"line":71},"template_redirect","vpc_scripts",66,[],[],[],[],{"dangerousFunctions":77,"sqlUsage":78,"outputEscaping":80,"fileOperations":11,"externalRequests":11,"nonceChecks":11,"capabilityChecks":11,"bundledLibraries":112},[],{"prepared":11,"raw":11,"locations":79},[],{"escaped":29,"rawEcho":81,"locations":82},14,[83,86,88,90,92,94,96,98,100,102,104,106,108,110],{"file":43,"line":84,"context":85},84,"raw output",{"file":43,"line":87,"context":85},107,{"file":43,"line":89,"context":85},108,{"file":43,"line":91,"context":85},110,{"file":43,"line":93,"context":85},111,{"file":43,"line":95,"context":85},112,{"file":43,"line":97,"context":85},113,{"file":43,"line":99,"context":85},114,{"file":43,"line":101,"context":85},115,{"file":43,"line":103,"context":85},116,{"file":43,"line":105,"context":85},120,{"file":55,"line":107,"context":85},45,{"file":55,"line":109,"context":85},46,{"file":55,"line":111,"context":85},49,[],[],{"summary":115,"deductions":116},"The \"computy-view-percent\" plugin v1.5.4 exhibits a generally good security posture based on the provided static analysis. The absence of any AJAX handlers, REST API routes, shortcodes, or cron events significantly limits the potential attack surface. Furthermore, the code demonstrates strong adherence to secure coding practices by utilizing prepared statements for all SQL queries and not performing any file operations or external HTTP requests, which are common vectors for vulnerabilities.\n\nHowever, there are notable areas for improvement. The most significant concern is the low percentage of properly escaped output (30%). This suggests that a substantial portion of the plugin's output may be vulnerable to Cross-Site Scripting (XSS) attacks, as user-supplied data or dynamic content might not be properly neutralized before being rendered in the browser. The complete lack of nonce and capability checks, while potentially explained by the zero attack surface, is a weakness that could become a risk if entry points are introduced in future versions without proper security controls. The vulnerability history being completely clear is a positive sign, but it does not negate the risks identified in the current static analysis.\n\nIn conclusion, while the plugin is free from known vulnerabilities and has a minimal attack surface, the poor output escaping is a critical flaw that could lead to XSS vulnerabilities. Developers should prioritize addressing the unescaped output to enhance the plugin's overall security. The absence of checks for authentication and authorization on potential entry points is also a concern for future maintainability and security.",[117,119,122],{"reason":118,"points":44},"Unescaped output (70% not properly escaped)",{"reason":120,"points":121},"No nonce checks implemented",5,{"reason":123,"points":121},"No capability checks implemented","2026-03-17T06:41:52.363Z",{"wat":126,"direct":134},{"assetPaths":127,"generatorPatterns":129,"scriptPaths":130,"versionParams":131},[128],"\u002Fwp-content\u002Fplugins\u002Fcomputy-view-percent\u002Fcss\u002Fvp-computy-style-admin.css",[],[],[132,133],"computy-view-percent\u002Fcomputy-view-percent.php?ver=1.5.4","computy-view-percent\u002Fjs\u002Fvp-computy-admin.js?ver=1.5.4",{"cssClasses":135,"htmlComments":138,"htmlAttributes":139,"restEndpoints":144,"jsGlobals":145,"shortcodeOutput":150},[136,137],"vp-computy-admin","computy",[],[140,141,142,143],"name=\"vp_option_name[vp-color]\"","name=\"vp_option_name[vp-height]\"","name=\"vp_option_name[shadow]\"","name=\"bonus_option_name[static-page]\"",[],[146,147,148,149],"window.document.body.insertAdjacentHTML","window.jQuery","window.$(window).scroll","window.Math.round",[]]