[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$f-s9qNyRz2gLObMdLjWHOt5IbgP9A3yk3B2WAFhG_Q7I":3,"$fA3btD1w1oSCTQSd5bHV7cJhMVcL8TC0EVea3-0hPTjY":228,"$f2x4oVxwxBznRU_UQZvsE8NIZ7wFmPGWRguRzj3RT-8I":233},{"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":20,"download_link":21,"security_score":22,"vuln_count":23,"unpatched_count":23,"last_vuln_date":24,"fetched_at":25,"discovery_status":26,"vulnerabilities":27,"developer":28,"crawl_stats":24,"alternatives":35,"analysis":36,"fingerprints":206},"website-speed-optimization","Website Speed Optimization","0.1.3","Than Minh Tu","https:\u002F\u002Fprofiles.wordpress.org\u002Fthanminhtu\u002F","\u003Cp>Website Speed Optimization will help your website speed up page loading.\u003C\u002Fp>\n\u003Ch4>Main Fuction\u003C\u002Fh4>\n\u003Ch4>CSS Optimization\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>Inline all CSS ==> One method to speed up the load times of web pages is to optimize the CSS delivery by inlining CSS scripts instead of requesting them through external files.\u003C\u002Fli>\n\u003Cli>Minify all CSS ==> CSS scripts found on web pages are usually not minimized, they usually contain extra characters, or extra lines, or unnecessary spaces.\u003C\u002Fli>\n\u003Cli>Move all CSS to footer ==> Page Speed measurement tools will usually recommend that you remove render-blocking JavaScript and CSS out of the  tag. This will prioritize loading other resources first to increase page loading speed.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>JS Optimization\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>Move all JS to footer ==> Page Speed measurement tools will usually recommend that you remove render-blocking JavaScript and CSS out of the  tag. This will prioritize loading other resources first to increase page loading speed.\u003C\u002Fli>\n\u003Cli>Inline all JS ==> Inline JS will reduce the number of requests to the server, and Inline JS will avoid blocking the initial page load to help the website be more appreciated.\u003C\u002Fli>\n\u003Cli>Minify all JS ==> Minify JS will eliminate unnecessary characters, making it less expensive to load the page\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Html Optimizations\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>Minify HTML\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Minification refers to the process of removing unnecessary or redundant data without affecting how the resource is processed by the browser – e.g. code comments and formatting, removing unused code, using shorter variable and function names, and so on.\u003C\u002Fp>\n\u003Ch4>Add Expires headers\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>Set expires header CSS\u003C\u002Fli>\n\u003Cli>Set expires header JS\u003C\u002Fli>\n\u003Cli>Set expires header Media\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Expires headers tell the browser whether they should request a specific file from the server or whether they should grab it from the browser’s cache.\u003C\u002Fp>\n\u003Cp>The whole idea behind Expires Headers is not only to reduce the load of downloads from the server (constantly downloading the same file when it’s unmodified is wasting precious load time) but rather to reduce the number of HTTP requests for the server.\u003C\u002Fp>\n\u003Cp>When you visit a website your browser is responsible for communicating with the web server to download all the required files. It then compiles those files to display the web page. As web pages become richer in graphics and content, more and more files are being transferred between your machine and the web server.\u003C\u002Fp>\n\u003Cp>In the past you would have an HTML file and maybe a few images to serve for your website, however many modern websites might have 50+ files per page to transfer. The files themselves can be a huge load increase by themselves but for each file you must create a request and even if requests are fractions of a second, they can soon add up. \u003Ca href=\"https:\u002F\u002Fgtmetrix.com\u002Fadd-expires-headers.html\" rel=\"nofollow ugc\">Source\u003C\u002Fa>\u003C\u002Fp>\n\u003Ch4>Cache CSS JS\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>Cache Css\u003C\u002Fli>\n\u003Cli>Cache Js\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Help website handle faster during page loading.\u003C\u002Fp>\n","Website Speed Optimization will help your website speed up page loading.",20,3631,100,1,"2020-05-07T09:27:00.000Z","5.4.19","4.7","5.4",[4],"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fwebsite-speed-optimization\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fwebsite-speed-optimization.zip",85,0,null,"2026-07-22T17:31:50.256Z","no_bundle",[],{"slug":29,"display_name":7,"profile_url":8,"plugin_count":30,"total_installs":31,"avg_security_score":22,"avg_patch_time_days":32,"trust_score":33,"computed_at":34},"thanminhtu",3,70,30,84,"2026-08-29T21:54:49.527Z",[],{"attackSurface":37,"codeSignals":161,"taintFlows":191,"riskAssessment":192,"analyzedAt":205},{"hooks":38,"ajaxHandlers":153,"restRoutes":158,"shortcodes":159,"cronEvents":160,"entryPointCount":14,"unprotectedCount":14},[39,45,50,54,60,62,66,70,73,76,80,83,87,91,95,98,102,104,106,108,110,114,117,120,123,125,127,131,136,141,145,149],{"type":40,"name":41,"callback":42,"file":43,"line":44},"action","wp_print_styles","WSO_cache_css","inc\\class-wso.php",17,{"type":40,"name":46,"callback":47,"priority":48,"file":43,"line":49},"wp_enqueue_scripts","WSO_cache_js_setup_ini_script",9996,21,{"type":40,"name":46,"callback":51,"priority":52,"file":43,"line":53},"WSO_cache_js",99999,22,{"type":55,"name":56,"callback":57,"priority":58,"file":43,"line":59},"filter","style_loader_src","WSO_func_01",9999,29,{"type":55,"name":61,"callback":57,"priority":58,"file":43,"line":32},"script_loader_src",{"type":55,"name":63,"callback":64,"file":43,"line":65},"the_generator","WSO_func_06",57,{"type":55,"name":67,"callback":68,"file":43,"line":69},"pre_ping","WSO_func_07",69,{"type":55,"name":46,"callback":71,"file":43,"line":72},"WSO_func_08",74,{"type":40,"name":46,"callback":74,"file":43,"line":75},"WSO_func_09",79,{"type":55,"name":77,"callback":78,"file":43,"line":79},"xmlrpc_enabled","__return_false",95,{"type":40,"name":41,"callback":81,"file":43,"line":82},"WSO_insert_css_inline",102,{"type":40,"name":84,"callback":85,"file":43,"line":86},"wp_footer","WSO_insert_css_inline_footer",107,{"type":40,"name":46,"callback":88,"priority":89,"file":43,"line":90},"WSO_setup_ini_script",9997,114,{"type":40,"name":46,"callback":92,"priority":93,"file":43,"line":94},"WSO_insert_js_footer",9998,117,{"type":40,"name":46,"callback":96,"priority":58,"file":43,"line":97},"WSO_remove_all_js",118,{"type":55,"name":99,"callback":100,"priority":11,"file":43,"line":101},"script_loader_tag","WSO_add_defer_async",120,{"type":40,"name":41,"callback":81,"file":43,"line":103},129,{"type":40,"name":84,"callback":85,"file":43,"line":105},132,{"type":40,"name":46,"callback":88,"priority":89,"file":43,"line":107},137,{"type":40,"name":46,"callback":92,"priority":93,"file":43,"line":109},140,{"type":40,"name":111,"callback":112,"file":43,"line":113},"get_header","WSO_html_begin",145,{"type":40,"name":41,"callback":115,"file":43,"line":116},"WSO_cache_css_insert_footer",149,{"type":40,"name":41,"callback":118,"file":43,"line":119},"WSO_remove_all_styles",150,{"type":40,"name":84,"callback":121,"priority":93,"file":43,"line":122},"WSO_cache_js_insert_footer",154,{"type":40,"name":46,"callback":96,"priority":58,"file":43,"line":124},155,{"type":55,"name":99,"callback":100,"priority":11,"file":43,"line":126},156,{"type":40,"name":128,"callback":129,"priority":14,"file":43,"line":130},"wp_head","WSO_insert_core_js",162,{"type":40,"name":132,"callback":133,"file":134,"line":135},"admin_menu","wsoAddMenu","wp-website-speed-optimization.php",31,{"type":40,"name":137,"callback":138,"priority":139,"file":134,"line":140},"admin_enqueue_scripts","wso_add_css_js",10,38,{"type":40,"name":142,"callback":143,"priority":144,"file":134,"line":69},"wp_before_admin_bar_render","wso_admin_toolbar",999,{"type":40,"name":146,"callback":147,"priority":14,"file":134,"line":148},"admin_notices","wso_inject_html",97,{"type":40,"name":150,"callback":151,"file":134,"line":152},"init","websiteSpeedOptimizationInit",148,[154],{"action":155,"nopriv":156,"callback":155,"hasNonce":156,"hasCapCheck":156,"file":134,"line":157},"wso_options_save",false,99,[],[],[],{"dangerousFunctions":162,"sqlUsage":163,"outputEscaping":165,"fileOperations":189,"externalRequests":23,"nonceChecks":23,"capabilityChecks":23,"bundledLibraries":190},[],{"prepared":23,"raw":23,"locations":164},[],{"escaped":166,"rawEcho":139,"locations":167},2,[168,171,173,175,177,179,181,184,186,188],{"file":43,"line":169,"context":170},187,"raw output",{"file":43,"line":172,"context":170},195,{"file":43,"line":174,"context":170},669,{"file":43,"line":176,"context":170},736,{"file":43,"line":178,"context":170},754,{"file":134,"line":180,"context":170},94,{"file":182,"line":183,"context":170},"wso_setting.php",71,{"file":182,"line":185,"context":170},81,{"file":182,"line":187,"context":170},89,{"file":182,"line":180,"context":170},27,[],[],{"summary":193,"deductions":194},"The \"website-speed-optimization\" plugin v0.1.3 exhibits a concerning security posture primarily due to an unprotected AJAX handler. While the plugin doesn't utilize dangerous functions, perform raw SQL queries, or make external HTTP requests, the presence of a single entry point that lacks authentication checks presents a significant risk. This means any unauthenticated user could potentially trigger this AJAX functionality, leading to unintended actions or information disclosure depending on its implementation. The lack of capability checks and nonce checks further exacerbates this concern, leaving this critical entry point vulnerable.  The code analysis also reveals a substantial number of file operations and a low percentage of properly escaped output, which could be exploited in conjunction with the unprotected AJAX handler.  The plugin's vulnerability history shows no recorded CVEs, which is a positive sign, but it does not mitigate the immediate risks identified in the static analysis. The absence of past vulnerabilities could indicate either good development practices in previous versions or simply a lack of targeted exploitation. Overall, while the absence of known vulnerabilities and the use of prepared statements are strengths, the unprotected AJAX handler is a critical weakness that needs immediate attention.",[195,197,200,202],{"reason":196,"points":139},"Unprotected AJAX handler",{"reason":198,"points":199},"No nonce checks",5,{"reason":201,"points":199},"No capability checks",{"reason":203,"points":204},"Low output escaping percentage",4,"2026-03-16T22:46:56.744Z",{"wat":207,"direct":217},{"assetPaths":208,"generatorPatterns":211,"scriptPaths":213,"versionParams":214},[209,210],"\u002Fwp-content\u002Fplugins\u002Fwebsite-speed-optimization\u002Fwso_styles.css","\u002Fwp-content\u002Fplugins\u002Fwebsite-speed-optimization\u002Fwso_script.js",[212],"\u003C!--Powered by Website Speed Optimization-->",[210],[215,216],"website-speed-optimization\u002Fwso_styles.css?ver=","website-speed-optimization\u002Fwso_script.js?ver=",{"cssClasses":218,"htmlComments":220,"htmlAttributes":221,"restEndpoints":223,"jsGlobals":224,"shortcodeOutput":226},[219],"wso-icon",[212],[222],"data-wso-options",[],[225],"WSO_settings",[227],"\u003Cdiv class=\"wso_update_fix\">\u003C\u002Fdiv>\u003Cdiv class=\"wso_update\">\u003Cbutton>Save Changes\u003C\u002Fbutton>\u003C\u002Fdiv>",{"error":229,"url":230,"statusCode":231,"statusMessage":232,"message":232},true,"http:\u002F\u002Flocalhost\u002Fapi\u002Fplugins\u002Fwebsite-speed-optimization\u002Fbundle",404,"no bundle for this plugin yet",{"slug":4,"current_version":6,"total_versions":166,"versions":234},[235,241],{"version":6,"download_url":236,"svn_tag_url":237,"released_at":24,"has_diff":156,"diff_files_changed":238,"diff_lines":24,"trac_diff_url":239,"vulnerabilities":240,"is_current":229},"https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fwebsite-speed-optimization.0.1.3.zip","https:\u002F\u002Fplugins.svn.wordpress.org\u002Fwebsite-speed-optimization\u002Ftags\u002F0.1.3\u002F",[],"https:\u002F\u002Fplugins.trac.wordpress.org\u002Fchangeset?old_path=%2Fwebsite-speed-optimization%2Ftags%2F0.1.2&new_path=%2Fwebsite-speed-optimization%2Ftags%2F0.1.3",[],{"version":242,"download_url":243,"svn_tag_url":244,"released_at":24,"has_diff":156,"diff_files_changed":245,"diff_lines":24,"trac_diff_url":24,"vulnerabilities":246,"is_current":156},"0.1.2","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fwebsite-speed-optimization.0.1.2.zip","https:\u002F\u002Fplugins.svn.wordpress.org\u002Fwebsite-speed-optimization\u002Ftags\u002F0.1.2\u002F",[],[]]