[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$fIOAY6Mu9e-1_cfpVr6IsOUia6sRqT15k4G5ZWBty2-U":3},{"slug":4,"name":5,"version":6,"author":7,"author_profile":8,"description":9,"short_description":10,"active_installs":11,"downloaded":12,"rating":11,"num_ratings":11,"last_updated":13,"tested_up_to":14,"requires_at_least":15,"requires_php":16,"tags":17,"homepage":22,"download_link":23,"security_score":24,"vuln_count":11,"unpatched_count":11,"last_vuln_date":25,"fetched_at":26,"vulnerabilities":27,"developer":28,"crawl_stats":25,"alternatives":36,"analysis":134,"fingerprints":254},"super-public-post-preview","Super Public Post Preview","1.0.8","INVELITY","https:\u002F\u002Fprofiles.wordpress.org\u002Finvelity\u002F","\u003Cp>This plugin allows you to post a preview of any post for anonymous users before publishing it. Have you ever written a post with the help of someone who does not have access to your blog and needed to be able to view the article to comment on it before publishing it and do not want to have access to your blog’s administration? This add-on takes care of this by generating a URL.\u003C\u002Fp>\n","Create and share link to anonymous users for preview any post before it is published.",0,1170,"2018-12-23T10:57:00.000Z","5.0.25","4.7","",[18,19,20,21],"post","preview","public","publish","https:\u002F\u002Finvelity.com\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fsuper-public-post-preview.zip",85,null,"2026-03-15T15:16:48.613Z",[],{"slug":29,"display_name":7,"profile_url":8,"plugin_count":30,"total_installs":31,"avg_security_score":32,"avg_patch_time_days":33,"trust_score":34,"computed_at":35},"invelity",8,380,83,30,82,"2026-04-04T16:48:38.935Z",[37,60,78,101,119],{"slug":38,"name":39,"version":40,"author":41,"author_profile":42,"description":43,"short_description":44,"active_installs":45,"downloaded":46,"rating":47,"num_ratings":48,"last_updated":49,"tested_up_to":50,"requires_at_least":51,"requires_php":52,"tags":53,"homepage":57,"download_link":58,"security_score":59,"vuln_count":11,"unpatched_count":11,"last_vuln_date":25,"fetched_at":26},"public-post-preview","Public Post Preview","3.1.0","Dominik Schilling","https:\u002F\u002Fprofiles.wordpress.org\u002Focean90\u002F","\u003Cp>Share a link to anonymous users to preview a draft of a post (or any other public post type) before it is published.\u003C\u002Fp>\n\u003Cp>Have you ever been writing a post with the help of someone who does not have access to your site and needed to give them the ability to preview it before publishing? This plugin takes care of that by generating an URL with an expiring nonce that can be given out for public preview.\u003C\u002Fp>\n\u003Cp>\u003Cem>Previously this plugin was maintained by \u003Ca href=\"https:\u002F\u002Fprofiles.wordpress.org\u002Fsivel\u002F\" rel=\"nofollow ugc\">Matt Martz\u003C\u002Fa> and was an idea of \u003Ca href=\"https:\u002F\u002Fprofiles.wordpress.org\u002Fjdingman\u002F\" rel=\"nofollow ugc\">Jonathan Dingman\u003C\u002Fa>. Photo by \u003Ca href=\"https:\u002F\u002Funsplash.com\u002Fphotos\u002Fopened-book-on-grass-during-daytime-bhBONc07WsI\" rel=\"nofollow ugc\">Annelies Geneyn\u003C\u002Fa>.\u003C\u002Fem>\u003C\u002Fp>\n\u003Ch3>Usage\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>To enable a public post preview check the box in the document settings. In the classic editor it’s in the “Publish” meta box.\u003C\u002Fli>\n\u003Cli>The link will be displayed if the checkbox is checked, you can copy and share the link with your friends.\u003C\u002Fli>\n\u003Cli>To disable a preview uncheck the box again.\u003C\u002Fli>\n\u003C\u002Ful>\n","Allow anonymous users to preview a draft of a post before it is published.",100000,1584582,90,79,"2026-03-01T16:13:00.000Z","7.0","6.6","8.0",[54,55,56,19,20],"anonymous","drafts","posts","https:\u002F\u002Fgithub.com\u002Focean90\u002Fpublic-post-preview","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fpublic-post-preview.3.1.0.zip",100,{"slug":61,"name":62,"version":63,"author":64,"author_profile":65,"description":66,"short_description":67,"active_installs":68,"downloaded":69,"rating":59,"num_ratings":70,"last_updated":71,"tested_up_to":72,"requires_at_least":73,"requires_php":16,"tags":74,"homepage":76,"download_link":77,"security_score":24,"vuln_count":11,"unpatched_count":11,"last_vuln_date":25,"fetched_at":26},"public-post-preview-configurator","Public Post Preview Configurator","1.0.3","bjoerne","https:\u002F\u002Fprofiles.wordpress.org\u002Fbjoerne\u002F","\u003Cp>With this plugin it’s possible to configure the expiration time of a link provided by the ‘public post preview’ plugin.\u003C\u002Fp>\n","Enables you to configure the 'public post preview' plugin with a user interface.",10000,55626,3,"2021-09-23T10:10:00.000Z","5.8.13","3.5",[75,18,56,19,20],"configuration","http:\u002F\u002Fwww.bjoerne.com","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fpublic-post-preview-configurator.zip",{"slug":79,"name":80,"version":81,"author":82,"author_profile":83,"description":84,"short_description":85,"active_installs":86,"downloaded":87,"rating":88,"num_ratings":89,"last_updated":90,"tested_up_to":91,"requires_at_least":92,"requires_php":93,"tags":94,"homepage":99,"download_link":100,"security_score":24,"vuln_count":11,"unpatched_count":11,"last_vuln_date":25,"fetched_at":26},"post-draft-preview","Post Draft Preview","1.2.2","WP Served","https:\u002F\u002Fprofiles.wordpress.org\u002Fwpserved\u002F","\u003Cp>Simple plugin enabling the publication of post drafts.\u003Cbr \u002F>\nIt allows preview of a draft without being logged to the WordPress admin panel.\u003Cbr \u002F>\nCompatible with the Gutenberg and the Classic Editor.\u003C\u002Fp>\n\u003Ch3>How it works\u003C\u002Fh3>\n\u003Cp>Content created in WordPress from the moment a post or page is added, but before it is published, receives draft status.\u003Cbr \u002F>\nYou can send the draft to someone else, but that person must have adequate access to the wp-admin section.\u003Cbr \u002F>\nThe problem arises when we want to show a draft of the post to people who do not have access to our wp-admin panel.\u003Cbr \u002F>\nFor this purpose, we have created the Post Draft Preview plugin.\u003C\u002Fp>\n\u003Cp>You can find full plugin description \u003Ca href=\"https:\u002F\u002Fwpserved.com\u002Fplugins\u002Fpost-draft-preview\u002F\" rel=\"nofollow ugc\">here\u003C\u002Fa>.\u003C\u002Fp>\n\u003Ch3>Source files\u003C\u002Fh3>\n\u003Cp>You can find plugin’s source files on our GitHub repo \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fwpserved\u002Fpost-draft-preview\" rel=\"nofollow ugc\">page\u003C\u002Fa>.\u003C\u002Fp>\n","Allow non logged-in users to check a draft of unpublished post by using secret link",700,5288,66,4,"2024-02-21T10:23:00.000Z","6.4.8","5.5","7.4",[95,96,97,98],"draft-preview","post-draft","post-preview","public-link","https:\u002F\u002Fwpserved.com\u002Fplugins\u002Fpost-draft-preview\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fpost-draft-preview.1.2.2.zip",{"slug":102,"name":103,"version":104,"author":105,"author_profile":106,"description":107,"short_description":108,"active_installs":109,"downloaded":110,"rating":59,"num_ratings":111,"last_updated":112,"tested_up_to":113,"requires_at_least":114,"requires_php":16,"tags":115,"homepage":117,"download_link":118,"security_score":24,"vuln_count":11,"unpatched_count":11,"last_vuln_date":25,"fetched_at":26},"simple-preview","Simple Preview","0.1.9","Nagmay","https:\u002F\u002Fprofiles.wordpress.org\u002Fgabrielmcgovern\u002F","\u003Cp>Let anonymous users preview a post before it is published!\u003C\u002Fp>\n\u003Cp>Have you ever been writing a post that needs to be reviewed by someone who does not have access to log in? This plugin generates a simple URL that can be given out for public preview.\u003C\u002Fp>\n\u003Cp>Based on Public Post Preview 1.3 by Matt Martz and Jonathan Dingman. Unlike Public Post Preview, the Simple Preview can be accessed by more then one user. The 24hr  time limit has also been removed.\u003C\u002Fp>\n\u003Ch3>Upgrading\u003C\u002Fh3>\n\u003Col>\n\u003Cli>Click update from the WordPress plugin menu.\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Cp>or\u003C\u002Fp>\n\u003Col>\n\u003Cli>\n\u003Cp>Click ‘Download’ on this page.\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>Deactivate the simple preview plugin through the Plugins menu in WordPress Admin.\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>Upload the folder to your \u002Fwp-content\u002Fplugins directory, overwriting the previous version.\u003C\u002Fp>\n\u003C\u002Fli>\n\u003C\u002Fol>\n","Let anonymous users preview a post before it is published!",200,8702,1,"2018-08-03T00:46:00.000Z","4.9.29","2.7",[54,116,18,20,102],"draft","http:\u002F\u002Fgabriel.nagmay.com\u002F2009\u002F10\u002Fsimple-preview\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fsimple-preview.0.1.9.zip",{"slug":120,"name":121,"version":122,"author":123,"author_profile":124,"description":125,"short_description":126,"active_installs":33,"downloaded":127,"rating":59,"num_ratings":111,"last_updated":16,"tested_up_to":128,"requires_at_least":129,"requires_php":52,"tags":130,"homepage":16,"download_link":132,"security_score":59,"vuln_count":11,"unpatched_count":11,"last_vuln_date":25,"fetched_at":133},"ppp-extension","PPP Extension","1.0.4","Louie Sonugan","https:\u002F\u002Fprofiles.wordpress.org\u002Fwinglouie\u002F","\u003Cp>Extends the Public Post Preview plugin by allowing users to customize the expiration time dynamically through the WordPress admin panel.\u003C\u002Fp>\n\u003Ch3>Features\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>Set the expiration time for Public Post Preview links.\u003C\u002Fli>\n\u003Cli>Customize the expiration time in \u003Cstrong>minutes\u003C\u002Fstrong> (from 1 minute to 30 days).\u003C\u002Fli>\n\u003Cli>Secure input validation to prevent invalid values.\u003C\u002Fli>\n\u003Cli>Fully integrated into the \u003Cstrong>WordPress Settings panel\u003C\u002Fstrong>.\u003C\u002Fli>\n\u003Cli>Safe and lightweight implementation.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>How to Use\u003C\u002Fh3>\n\u003Col>\n\u003Cli>Navigate to \u003Cstrong>Settings > PPP Extension\u003C\u002Fstrong> in your WordPress admin panel.\u003C\u002Fli>\n\u003Cli>Enter the expiration time in \u003Cstrong>minutes\u003C\u002Fstrong> (minimum: 1, maximum: 43200 minutes \u002F 30 days).\u003C\u002Fli>\n\u003Cli>Click Save Changes.\u003C\u002Fli>\n\u003Cli>Public Post Preview links will now expire based on your selected time.\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Ch3>Security\u003C\u002Fh3>\n\u003Cp>– User input is \u003Cstrong>sanitized\u003C\u002Fstrong> and validated to prevent unauthorized values.\u003Cbr \u002F>\n– The input is limited between \u003Cstrong>1 minute and 30 days\u003C\u002Fstrong> to avoid extreme values.\u003Cbr \u002F>\n– Escaped output prevents XSS attacks.\u003C\u002Fp>\n\u003Ch3>License\u003C\u002Fh3>\n\u003Cp>This plugin is released under the GPLv2 or later license.\u003C\u002Fp>\n","Extends the Public Post Preview plugin by allowing users to customize the expiration time dynamically through the WordPress admin panel.",643,"6.9.4","5.0",[131,38],"expiration","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fppp-extension.1.0.4.zip","2026-03-15T10:48:56.248Z",{"attackSurface":135,"codeSignals":184,"taintFlows":215,"riskAssessment":242,"analyzedAt":253},{"hooks":136,"ajaxHandlers":174,"restRoutes":181,"shortcodes":182,"cronEvents":183,"entryPointCount":111,"unprotectedCount":11},[137,142,146,151,157,160,164,168,171],{"type":138,"name":139,"callback":140,"file":141,"line":70},"action","admin_menu","super_post_preview_plugin_menu","premium.php",{"type":138,"name":143,"callback":144,"file":141,"line":145},"admin_enqueue_scripts","super_preview_post_enq_admin_scripts",40,{"type":147,"name":148,"callback":149,"file":141,"line":150},"filter","protected_title_format","super_pp_remove_protected_text",142,{"type":138,"name":152,"callback":153,"priority":154,"file":155,"line":156},"init","super_public_post_preview_load_plugin_textdomain",10,"super_public_post_preview.php",26,{"type":147,"name":158,"callback":159,"file":155,"line":33},"pre_get_posts","super_show_public_preview",{"type":147,"name":161,"callback":162,"priority":154,"file":155,"line":163},"posts_results","super_set_post_to_publish",35,{"type":138,"name":165,"callback":166,"file":155,"line":167},"wp_head","super_pp_noindex_nofollow",54,{"type":138,"name":169,"callback":170,"file":155,"line":88},"admin_init","super_set_post_to_publish_run",{"type":138,"name":143,"callback":172,"file":155,"line":173},"closure",159,[175],{"action":176,"nopriv":177,"callback":178,"hasNonce":179,"hasCapCheck":177,"file":155,"line":180},"super_enable_preview",false,"super_enable_preview_func",true,134,[],[],[],{"dangerousFunctions":185,"sqlUsage":186,"outputEscaping":188,"fileOperations":11,"externalRequests":11,"nonceChecks":111,"capabilityChecks":11,"bundledLibraries":214},[],{"prepared":11,"raw":11,"locations":187},[],{"escaped":154,"rawEcho":189,"locations":190},13,[191,194,196,197,199,201,203,205,206,207,209,211,212],{"file":141,"line":192,"context":193},28,"raw output",{"file":141,"line":195,"context":193},29,{"file":141,"line":195,"context":193},{"file":141,"line":198,"context":193},52,{"file":141,"line":200,"context":193},53,{"file":141,"line":202,"context":193},101,{"file":141,"line":204,"context":193},104,{"file":141,"line":204,"context":193},{"file":155,"line":204,"context":193},{"file":155,"line":208,"context":193},115,{"file":155,"line":210,"context":193},118,{"file":155,"line":210,"context":193},{"file":155,"line":213,"context":193},155,[],[216,234],{"entryPoint":217,"graph":218,"unsanitizedCount":111,"severity":233},"super_preview_post_page (premium.php:15)",{"nodes":219,"edges":231},[220,225],{"id":221,"type":222,"label":223,"file":141,"line":224},"n0","source","$_POST",17,{"id":226,"type":227,"label":228,"file":141,"line":229,"wp_function":230},"n1","sink","update_option() [Settings Manipulation]",19,"update_option",[232],{"from":221,"to":226,"sanitized":177},"low",{"entryPoint":235,"graph":236,"unsanitizedCount":111,"severity":233},"\u003Cpremium> (premium.php:0)",{"nodes":237,"edges":240},[238,239],{"id":221,"type":222,"label":223,"file":141,"line":224},{"id":226,"type":227,"label":228,"file":141,"line":229,"wp_function":230},[241],{"from":221,"to":226,"sanitized":177},{"summary":243,"deductions":244},"The \"super-public-post-preview\" plugin v1.0.8 presents a generally good security posture, with no known vulnerabilities in its history and a limited attack surface. The plugin demonstrates good practice by utilizing prepared statements for all SQL queries and incorporating nonce checks. However, there are areas for improvement. The static analysis reveals that only 43% of output is properly escaped, indicating a potential for cross-site scripting (XSS) vulnerabilities if user-supplied data is not sufficiently sanitized before being displayed.\n\nThe taint analysis indicates two flows with unsanitized paths. While these did not escalate to critical or high severity in the static analysis, they warrant attention as they represent potential entry points for malicious data manipulation. The absence of capability checks on the single AJAX handler is a concern, as it means any authenticated user could potentially trigger this functionality, regardless of their role or permissions.  The lack of past vulnerabilities is a positive indicator, suggesting diligent development, but it does not negate the risks identified in the current code analysis.",[245,247,250],{"reason":246,"points":30},"Insufficient output escaping",{"reason":248,"points":249},"Unsanitized paths in taint flows",7,{"reason":251,"points":252},"Missing capability checks on AJAX handler",6,"2026-03-17T07:33:01.712Z",{"wat":255,"direct":264},{"assetPaths":256,"generatorPatterns":259,"scriptPaths":260,"versionParams":261},[257,258],"\u002Fwp-content\u002Fplugins\u002Fsuper-public-post-preview\u002Fjquery-ui.css","\u002Fwp-content\u002Fplugins\u002Fsuper-public-post-preview\u002Fjquery-ui.min.js",[],[258],[262,263],"super-public-post-preview\u002Fstyle.css?ver=","super-public-post-preview\u002Fjquery-ui.min.js?ver=",{"cssClasses":265,"htmlComments":268,"htmlAttributes":269,"restEndpoints":276,"jsGlobals":278,"shortcodeOutput":280},[266,267],"trueactive","falseactive",[],[270,271,272,273,270,271,274,275,272,271,273,273,275,271,270],"name=\"super_preview_checkbox\"","id=\"super_preview_checkbox\"","name=\"super_pp_link_text\"","id=\"super_set_post_to_publish\"","id=\"super_preview_ajax_content\"","class=\"spinner\"",[277],"\u002Fwp-json\u002Fsuper\u002Fv1\u002Fenable-preview",[279,178,166],"jQuery",[]]