[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$fTMvpgxlP9VBwvpxHnEgodlrerQeyCZMzpkk5BdsYFFg":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":13,"last_updated":14,"tested_up_to":15,"requires_at_least":16,"requires_php":14,"tags":17,"homepage":19,"download_link":20,"security_score":21,"vuln_count":13,"unpatched_count":13,"last_vuln_date":22,"fetched_at":23,"vulnerabilities":24,"developer":25,"crawl_stats":22,"alternatives":32,"analysis":73,"fingerprints":132},"mroonga","Mroonga","0.1.1","ktou","https:\u002F\u002Fprofiles.wordpress.org\u002Fktou\u002F","\u003Cp>This plugin provides fast and rich full text search features based on \u003Ca href=\"http:\u002F\u002Fmroonga.org\u002F\" rel=\"nofollow ugc\">Mroonga\u003C\u002Fa>. Mroonga is a MySQL\u002FMariaDB plugin. You don’t need to introduce a new server only for full text search. You can use existing MySQL\u002FMariaDB server. It reduces maintainance cost.\u003C\u002Fp>\n\u003Cp>Here are features:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Fast full text search\u003C\u002Fli>\n\u003Cli>Google like query syntax such as \u003Ccode>(KEYWORD1 OR KEYWORD2) -KEYWORD3\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>Sort by relevance\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Here are features to be implemented:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Keyword highlight\u003C\u002Fli>\n\u003Cli>Snippet\u003C\u002Fli>\n\u003Cli>Related posts\u003C\u002Fli>\n\u003Cli>Auto complete\u003C\u002Fli>\n\u003Cli>Synonym\u003C\u002Fli>\n\u003Cli>…\u003C\u002Fli>\n\u003C\u002Ful>\n","Fast and rich full text search features for WordPress!",10,1508,0,"","4.8.28","4.8.1",[18],"full-text-search","https:\u002F\u002Fgithub.com\u002Fmroonga\u002Fwordpress-mroonga","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fmroonga.zip",100,null,"2026-03-15T10:48:56.248Z",[],{"slug":7,"display_name":7,"profile_url":8,"plugin_count":26,"total_installs":27,"avg_security_score":28,"avg_patch_time_days":29,"trust_score":30,"computed_at":31},2,20,93,30,89,"2026-04-05T09:19:44.925Z",[33,53],{"slug":18,"name":34,"version":35,"author":36,"author_profile":37,"description":38,"short_description":39,"active_installs":40,"downloaded":41,"rating":21,"num_ratings":26,"last_updated":42,"tested_up_to":43,"requires_at_least":44,"requires_php":45,"tags":46,"homepage":50,"download_link":51,"security_score":21,"vuln_count":13,"unpatched_count":13,"last_vuln_date":22,"fetched_at":52},"Full-Text Search","2.14.8","ishitaka","https:\u002F\u002Fprofiles.wordpress.org\u002Fishitaka\u002F","\u003Cp>Replaces site search with full-text search.\u003C\u002Fp>\n\u003Cp>Replace the site search from LIKE search to Japanese full-text search (MySQL + Ngram parser or Mroonga engine + TokenMecab parser). This will significantly improve search performance.\u003C\u002Fp>\n\u003Cp>Search for pure strings (plain text) without HTML tags. This will prevent HTML tags from being searched.\u003C\u002Fp>\n\u003Cp>The data (index) for searching is stored in a dedicated table. It does not rewrite existing table structures or post data (posts table).\u003C\u002Fp>\n\u003Cp>Searches for text in PDF, Word (doc, docx), Excel, and PowerPoint files. Secured PDF file are currently not supported.\u003C\u002Fp>\n\u003Cp>It supports WordPress multisite.\u003C\u002Fp>\n\u003Ch4>Search string options\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>\u003Ccode>OR\u003C\u002Fcode> (uppercase letter) – Combine searches. Example: foo OR bar\u003C\u002Fli>\n\u003Cli>\u003Ccode>-\u003C\u002Fcode> – Exclude words from the search. Example: foo -bar\u003C\u002Fli>\n\u003Cli>\u003Ccode>\"\"\u003C\u002Fcode> – Search for an exact match. Example: “foo bar”\u003C\u002Fli>\n\u003Cli>\u003Ccode>*\u003C\u002Fcode> – Search by wildcard. Mroonga only. Example: foo*\u003C\u002Fli>\n\u003Cli>\u003Ccode>()\u003C\u002Fcode> – Grouping. Mroonga only. Example: (foo OR bar) baz\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Operating environment\u003C\u002Fh4>\n\u003Cp>Requires MySQL 5.6 or later, or Mroonga engine.\u003C\u002Fp>\n\u003Cp>Mroonga engine is strongly recommended. InnoDB engine performs significantly worse with large amounts of data.\u003C\u002Fp>\n","Replaces site search with full-text search.",200,12108,"2026-01-10T07:22:00.000Z","6.9.4","5.5","7.2",[47,18,48,4,49],"full-text","fulltext","search","https:\u002F\u002Fxakuro.com\u002Fwordpress\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Ffull-text-search.2.14.8.zip","2026-03-15T15:16:48.613Z",{"slug":54,"name":55,"version":56,"author":57,"author_profile":58,"description":59,"short_description":60,"active_installs":61,"downloaded":62,"rating":21,"num_ratings":63,"last_updated":64,"tested_up_to":43,"requires_at_least":65,"requires_php":66,"tags":67,"homepage":71,"download_link":72,"security_score":21,"vuln_count":13,"unpatched_count":13,"last_vuln_date":22,"fetched_at":52},"webequipe-pdf-search","WebEquipe PDF Search","1.0.1","WebEquipe","https:\u002F\u002Fprofiles.wordpress.org\u002Fwebequipe\u002F","\u003Cp>\u003Cstrong>WebEquipe PDF Search\u003C\u002Fstrong> indexes your PDF files and makes their text searchable. When visitors search your site, they see results from both your posts\u002Fpages and the content inside your PDFs.\u003C\u002Fp>\n\u003Ch4>Video\u003C\u002Fh4>\n\u003Cp>Watch the setup and usage guide: \u003Ca href=\"https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=YKdGUjkK4bA\" rel=\"nofollow ugc\">https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=YKdGUjkK4bA\u003C\u002Fa>\u003C\u002Fp>\n\u003Ch4>Supported PDFs\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>\u003Cstrong>Works with:\u003C\u002Fstrong> Standard, text-based PDFs (the kind you create or export from Word, Google Docs, etc.). File size default 50MB, configurable up to 500MB in settings.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Does not work with:\u003C\u002Fstrong> Scanned PDFs or image-only PDFs (no extractable text)—use OCR elsewhere first. Password-protected PDFs cannot be indexed.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Keep Private PDFs Out of Search\u003C\u002Fh4>\n\u003Cp>Need to hide or protect certain PDFs? Use \u003Cstrong>Exclude\u003C\u002Fstrong> so a PDF is never indexed and never appears in search—even when you run “Re-index All PDFs” or bulk index. Excluded PDFs stay in your Media Library; they just won’t be searchable. Use \u003Cstrong>Include\u003C\u002Fstrong> later to allow indexing again. You can exclude or include PDFs from the Media Library or from \u003Cstrong>Settings \u003Cspan aria-hidden=\"true\" class=\"wp-exclude-emoji\">→\u003C\u002Fspan> PDF Search\u003C\u002Fstrong> (Manage PDFs).\u003C\u002Fp>\n\u003Ch4>How to Use\u003C\u002Fh4>\n\u003Col>\n\u003Cli>\u003Cstrong>Install and activate\u003C\u002Fstrong> the plugin.\u003C\u002Fli>\n\u003Cli>Go to \u003Cstrong>Settings \u003Cspan aria-hidden=\"true\" class=\"wp-exclude-emoji\">→\u003C\u002Fspan> PDF Search\u003C\u002Fstrong>.\u003C\u002Fli>\n\u003Cli>Click \u003Cstrong>Re-index All PDFs\u003C\u002Fstrong> to index existing PDFs (new uploads are indexed automatically by default).\u003C\u002Fli>\n\u003Cli>Use your site’s search or add the shortcode \u003Ccode>[webequipe_pdf_search_form]\u003C\u002Fcode> on a page—PDFs will appear in results.\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Cp>Existing PDFs need to be indexed once; after that, new uploads can be indexed automatically (optional in settings). To hide specific PDFs from search, use \u003Cstrong>Exclude\u003C\u002Fstrong> on them (Media Library or Settings \u003Cspan aria-hidden=\"true\" class=\"wp-exclude-emoji\">→\u003C\u002Fspan> PDF Search \u003Cspan aria-hidden=\"true\" class=\"wp-exclude-emoji\">→\u003C\u002Fspan> Manage PDFs).\u003C\u002Fp>\n\u003Ch4>Settings at a Glance\u003C\u002Fh4>\n\u003Cp>All options are under \u003Cstrong>Settings \u003Cspan aria-hidden=\"true\" class=\"wp-exclude-emoji\">→\u003C\u002Fspan> PDF Search\u003C\u002Fstrong>:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>General\u003C\u002Fstrong> – Turn indexing on\u002Foff, include PDFs in WordPress search, maximum file size (50MB default), excerpt length.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Indexing options\u003C\u002Fstrong> – Batch size for re-indexing.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Search display options\u003C\u002Fstrong> – Show or hide PDF icon, file size, page count, last updated date, and thumbnail preview in search results.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Advanced\u003C\u002Fstrong> – Debug logging, memory\u002Ftimeout for large PDFs, background processing, delete data on uninstall.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Full details and shortcode options: \u003Cstrong>Settings \u003Cspan aria-hidden=\"true\" class=\"wp-exclude-emoji\">→\u003C\u002Fspan> PDF Search Help\u003C\u002Fstrong>.\u003C\u002Fp>\n\u003Ch4>What You Can Do\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>\u003Cstrong>Full-text search\u003C\u002Fstrong> – Search inside PDF content, not just filenames.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Control each PDF\u003C\u002Fstrong> – Index, unindex, or \u003Cstrong>exclude\u003C\u002Fstrong> from the Media Library or the PDF list on the settings page.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Bulk actions\u003C\u002Fstrong> – Index, unindex, include, or exclude multiple PDFs at once.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Search display\u003C\u002Fstrong> – Show PDF icon, file size, page count, and excerpts (configurable in settings).\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Shortcode\u003C\u002Fstrong> – Add a PDF search form with \u003Ccode>[webequipe_pdf_search_form]\u003C\u002Fcode> (see \u003Cstrong>Settings \u003Cspan aria-hidden=\"true\" class=\"wp-exclude-emoji\">→\u003C\u002Fspan> PDF Search Help\u003C\u002Fstrong> for options).\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Background processing\u003C\u002Fstrong> – Large PDFs are processed in the background to avoid timeouts.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Troubleshooting\u003C\u002Fh3>\n\u003Ch4>PDFs not appearing in search\u003C\u002Fh4>\n\u003Cp>Ensure PDFs are indexed (Media Library \u003Cspan aria-hidden=\"true\" class=\"wp-exclude-emoji\">→\u003C\u002Fspan> “Search Indexed” column), “Enable Search Integration” is on in Settings \u003Cspan aria-hidden=\"true\" class=\"wp-exclude-emoji\">→\u003C\u002Fspan> PDF Search, and the PDF is not excluded. See the FAQ for more.\u003C\u002Fp>\n\u003Ch4>Indexing fails or times out\u003C\u002Fh4>\n\u003Cp>Use Settings \u003Cspan aria-hidden=\"true\" class=\"wp-exclude-emoji\">→\u003C\u002Fspan> PDF Search \u003Cspan aria-hidden=\"true\" class=\"wp-exclude-emoji\">→\u003C\u002Fspan> Advanced: enable “Background Processing” for large PDFs. Ensure your server PHP memory_limit and max_execution_time are sufficient for very large files (see Help for details). Reduce “Batch Size” if re-indexing many PDFs at once.\u003C\u002Fp>\n\u003Ch4>Other issues\u003C\u002Fh4>\n\u003Cp>See the FAQ above and \u003Cstrong>Settings \u003Cspan aria-hidden=\"true\" class=\"wp-exclude-emoji\">→\u003C\u002Fspan> PDF Search Help\u003C\u002Fstrong> for full documentation.\u003C\u002Fp>\n\u003Ch3>Privacy\u003C\u002Fh3>\n\u003Cp>The plugin stores extracted PDF text and metadata in a custom database table and a compressed backup in WordPress post meta for PDF attachments. If debug logging is enabled, it stores recent log entries in a WordPress option. It does not collect or send visitor data. If your PDFs contain personal or sensitive information, that content is in the index; mention this in your privacy policy if required.\u003C\u002Fp>\n\u003Ch3>Third-Party Libraries\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>smalot\u002Fpdfparser (LGPL-3.0) – PDF text extraction\u003C\u002Fli>\n\u003Cli>symfony\u002Fpolyfill-mbstring (MIT) – multibyte string support\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Credits\u003C\u002Fh3>\n\u003Cp>Developed by \u003Ca href=\"https:\u002F\u002Fwebequipe.com\" rel=\"nofollow ugc\">WebEquipe\u003C\u002Fa>. Uses \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fsmalot\u002Fpdfparser\" rel=\"nofollow ugc\">smalot\u002Fpdfparser\u003C\u002Fa> for PDF text extraction.\u003C\u002Fp>\n\u003Ch3>Support\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>Support: https:\u002F\u002Fwordpress.org\u002Fsupport\u002Fplugin\u002Fwebequipe-pdf-search\u003C\u002Fli>\n\u003C\u002Ful>\n","Search inside your PDF documents. Index text-based PDFs and show their content in WordPress search.",40,318,1,"2026-03-01T16:43:00.000Z","6.2","7.4",[68,18,69,70,49],"document-search","media-search","pdf","https:\u002F\u002Fwebequipe.com\u002Fpdf-search\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fwebequipe-pdf-search.1.0.1.zip",{"attackSurface":74,"codeSignals":102,"taintFlows":119,"riskAssessment":120,"analyzedAt":131},{"hooks":75,"ajaxHandlers":98,"restRoutes":99,"shortcodes":100,"cronEvents":101,"entryPointCount":13,"unprotectedCount":13},[76,82,87,91,95],{"type":77,"name":78,"callback":79,"priority":11,"file":80,"line":81},"action","wp_insert_post","update_post","mroonga.php",179,{"type":83,"name":84,"callback":85,"priority":11,"file":80,"line":86},"filter","posts_search","fulltext_search",180,{"type":83,"name":88,"callback":89,"priority":11,"file":80,"line":90},"posts_join","fulltext_search_join",181,{"type":83,"name":92,"callback":93,"priority":11,"file":80,"line":94},"posts_search_orderby","fulltext_search_orderby",182,{"type":77,"name":96,"callback":96,"priority":21,"file":80,"line":97},"after_delete_post",184,[],[],[],[],{"dangerousFunctions":103,"sqlUsage":104,"outputEscaping":116,"fileOperations":13,"externalRequests":13,"nonceChecks":13,"capabilityChecks":13,"bundledLibraries":118},[],{"prepared":26,"raw":105,"locations":106},4,[107,110,112,114],{"file":80,"line":108,"context":109},65,"$wpdb->query() with variable interpolation",{"file":80,"line":111,"context":109},81,{"file":80,"line":113,"context":109},94,{"file":80,"line":115,"context":109},104,{"escaped":13,"rawEcho":13,"locations":117},[],[],[],{"summary":121,"deductions":122},"The mroonga plugin version 0.1.1 exhibits an extremely limited attack surface with zero identified entry points, which is a strong positive security indicator. The absence of AJAX handlers, REST API routes, shortcodes, and cron events significantly reduces the potential avenues for malicious interaction. Furthermore, the code analysis reveals no dangerous functions, no file operations, no external HTTP requests, and all identified outputs are properly escaped. This suggests a well-written codebase from a defensive perspective, prioritizing secure coding practices.\n\nHowever, the static analysis also highlights a concern: 100% of the SQL queries do not utilize prepared statements. This lack of prepared statements, even with a low number of SQL queries, poses a significant risk of SQL injection vulnerabilities. While there is no recorded vulnerability history for mroonga, indicating a lack of known exploits or past issues, this does not negate the inherent risk presented by the unparameterized SQL queries. The complete absence of nonce and capability checks, while not directly exploitable due to the zero attack surface, means that if any entry points were introduced in the future, they would be immediately vulnerable to various attacks.\n\nIn conclusion, mroonga v0.1.1 has a commendable lack of attack surface and a focus on output escaping. The primary weakness lies in its handling of SQL queries, which is a critical oversight. The lack of vulnerability history is encouraging but should not lead to complacency, especially given the identified SQL vulnerability pattern. The plugin would benefit from implementing prepared statements for all database interactions to mitigate the risk of SQL injection.",[123,126,129],{"reason":124,"points":125},"SQL queries not using prepared statements",15,{"reason":127,"points":128},"No nonce checks implemented",5,{"reason":130,"points":128},"No capability checks implemented","2026-03-16T23:27:10.330Z",{"wat":133,"direct":138},{"assetPaths":134,"generatorPatterns":135,"scriptPaths":136,"versionParams":137},[],[],[],[],{"cssClasses":139,"htmlComments":140,"htmlAttributes":141,"restEndpoints":142,"jsGlobals":143,"shortcodeOutput":144},[],[],[],[],[],[]]