[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$fe31CbpoW9nPPD0ULjnJVDRuQ63XLLrKOwodkbqKAa1Q":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":25,"download_link":26,"security_score":27,"vuln_count":28,"unpatched_count":28,"last_vuln_date":29,"fetched_at":30,"vulnerabilities":31,"developer":32,"crawl_stats":29,"alternatives":38,"analysis":140,"fingerprints":217},"file-media-renamer","File Media Renamer","1.3","Bradley Dalina","https:\u002F\u002Fprofiles.wordpress.org\u002Fbradleydalina\u002F","\u003Cp>File Media Renamer is a WordPress plugin that allows to rename uploaded files already and change their postname or slug-url.\u003Cbr \u002F>\nThis plugin simply adds two fields in the wordpress media frame, namely the filename field and the postname field where in you can easily rename the files. As per current wordpress versions does not support or does not have a feature of renaming uploaded files so you either need to delete the file and re-upload it again or simply install this plugin and rename them in the media frame screen.\u003C\u002Fp>\n\u003Cp>“This plugin is limited with its available settings. Before writing a reviews, please \u003Cem>mention that you read the whole description\u003C\u002Fem> and clearly understand the limit and usage of the plugin.”\u003C\u002Fp>\n","This plugin allows you rename uploaded files available in wordpress media and change the postname or slug name.",2000,15114,100,6,"2022-10-18T07:54:00.000Z","6.0.11","4.6","7.2",[20,21,22,23,24],"file-rename","file-renamer","filename","media-rename","media-renamer","http:\u002F\u002Fwordpress.org\u002Fplugins\u002Ffile-media-renamer\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Ffile-media-renamer.1.3.zip",85,0,null,"2026-03-15T15:16:48.613Z",[],{"slug":33,"display_name":7,"profile_url":8,"plugin_count":34,"total_installs":11,"avg_security_score":27,"avg_patch_time_days":35,"trust_score":36,"computed_at":37},"bradleydalina",1,30,84,"2026-04-04T03:55:17.553Z",[39,60,82,103,121],{"slug":40,"name":41,"version":42,"author":43,"author_profile":44,"description":45,"short_description":46,"active_installs":28,"downloaded":47,"rating":28,"num_ratings":28,"last_updated":48,"tested_up_to":49,"requires_at_least":50,"requires_php":51,"tags":52,"homepage":57,"download_link":58,"security_score":13,"vuln_count":28,"unpatched_count":28,"last_vuln_date":29,"fetched_at":59},"imagecraft-ai-alt-text-file-renamer-image-seo","ImageCraft – AI Alt Text, File Renamer & Image SEO","1.0.0","Softminal","https:\u002F\u002Fprofiles.wordpress.org\u002Fsoftminal\u002F","\u003Cp>ImageCraft is a Bring Your Own Key (BYOK) plugin that generates alt text for WordPress images using Anthropic Claude, OpenAI GPT-4, or Google Gemini. You provide your own API key and pay only for direct API usage — no middleman service, no subscriptions, no per-image credits.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>What makes this plugin different?\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>Most alt text plugins in the directory either route requests through their own paid service or support only a single AI provider. ImageCraft takes a different approach by combining multi-provider BYOK with SEO and WooCommerce awareness:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>3 AI providers, your choice\u003C\u002Fstrong> — Switch between Anthropic Claude, OpenAI GPT-4, and Google Gemini using your own API keys. Compare quality and cost, and pick what works for your site.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>SEO keyphrase-aware generation\u003C\u002Fstrong> — Integrates with Yoast SEO, Rank Math, All in One SEO, and SEOPress to pull the focus keyphrase from your posts and include it in the generated alt text. This means your alt text aligns with your existing SEO strategy without manual effort.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>WooCommerce product-context generation\u003C\u002Fstrong> — Sends product name, SKU, categories, tags, and price as context to the AI, so generated alt text is relevant to the product — not just a generic image description. Includes 3 dedicated WooCommerce tone modes (Product SEO, Product Descriptive, Product Lifestyle) and a custom prompt option.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>SEO image audit\u003C\u002Fstrong> — Scans your media library and scores alt text quality. Detects missing alt text, generic\u002Fplaceholder text (e.g. “image”, “IMG_1234”), filename-based alt text, and text that exceeds recommended length.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Encrypted API key storage\u003C\u002Fstrong> — API keys are encrypted with AES-256-CBC using your WordPress security salts before being stored in the database.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>Additional Features\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Scan and filter your media library (by date range, file size, alt text quality)\u003C\u002Fli>\n\u003Cli>Batch processing up to 500 images with progress tracking\u003C\u002Fli>\n\u003Cli>Auto-generate alt text on new image uploads\u003C\u002Fli>\n\u003Cli>7 tone options: Professional, Casual, Technical, SEO, and 3 WooCommerce-specific tones\u003C\u002Fli>\n\u003Cli>Custom prompt builder — write your own AI instructions\u003C\u002Fli>\n\u003Cli>Review and edit generated alt text before accepting\u003C\u002Fli>\n\u003Cli>SEO-friendly file renaming based on alt text\u003C\u002Fli>\n\u003Cli>WooCommerce gallery image support\u003C\u002Fli>\n\u003Cli>Multi-language support (30+ languages)\u003C\u002Fli>\n\u003Cli>Generate alt text directly from the Gutenberg editor and WordPress media modal\u003C\u002Fli>\n\u003Cli>Usage statistics and cost tracking dashboard\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>Typical API Costs\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>You pay only for API usage to your chosen provider:\u003Cbr \u002F>\n* Anthropic Claude: ~$0.0008 per image\u003Cbr \u002F>\n* OpenAI GPT-4: ~$0.01 per image\u003Cbr \u002F>\n* Google Gemini: ~$0.001 per image\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Privacy & Security\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>API keys encrypted with AES-256-CBC using WordPress salts\u003C\u002Fli>\n\u003Cli>Images are sent only to your chosen AI provider when you trigger generation\u003C\u002Fli>\n\u003Cli>No data routed through third-party proxy services\u003C\u002Fli>\n\u003Cli>All plugin logic runs on your server\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>External services\u003C\u002Fh3>\n\u003Cp>This plugin connects to third-party AI services to generate alt text for your images. No data is sent automatically — requests are only made when you explicitly trigger alt text generation (manually, via batch processing, or if you enable auto-generate on upload).\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Data sent:\u003C\u002Fstrong> When alt text generation is triggered, the plugin sends the image (base64-encoded) along with a text prompt to your chosen AI provider. No personal user data is sent. Your API key is included in the request header for authentication.\u003C\u002Fp>\n\u003Ch4>Anthropic (Claude)\u003C\u002Fh4>\n\u003Cp>Used to generate alt text via the Claude vision API.\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Endpoint: \u003Ccode>https:\u002F\u002Fapi.anthropic.com\u002Fv1\u002Fmessages\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fwww.anthropic.com\u002Flegal\u002Fconsumer-terms\" rel=\"nofollow ugc\">Terms of Service\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fwww.anthropic.com\u002Flegal\u002Fprivacy\" rel=\"nofollow ugc\">Privacy Policy\u003C\u002Fa>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>OpenAI (GPT-4)\u003C\u002Fh4>\n\u003Cp>Used to generate alt text via the OpenAI chat completions API.\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Endpoint: \u003Ccode>https:\u002F\u002Fapi.openai.com\u002Fv1\u002Fchat\u002Fcompletions\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fopenai.com\u002Fpolicies\u002Fterms-of-use\u002F\" rel=\"nofollow ugc\">Terms of Use\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fopenai.com\u002Fpolicies\u002Fprivacy-policy\u002F\" rel=\"nofollow ugc\">Privacy Policy\u003C\u002Fa>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Google Gemini\u003C\u002Fh4>\n\u003Cp>Used to generate alt text via the Google Gemini API.\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Endpoint: \u003Ccode>https:\u002F\u002Fgenerativelanguage.googleapis.com\u002Fv1beta\u002Fmodels\u002F\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fai.google.dev\u002Fgemini-api\u002Fterms\" rel=\"nofollow ugc\">Terms of Service\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fpolicies.google.com\u002Fprivacy\" rel=\"nofollow ugc\">Privacy Policy\u003C\u002Fa>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Source Code\u003C\u002Fh3>\n\u003Cp>The uncompiled source code for all JavaScript and CSS assets is included in the \u003Ccode>resources\u002F\u003C\u002Fcode> directory of this plugin. It is also available on GitHub:\u003C\u002Fp>\n\u003Cp>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fsoftminal\u002Fimagecraft-ai-alt-text-file-renamer-image-seo\" rel=\"nofollow ugc\">https:\u002F\u002Fgithub.com\u002Fsoftminal\u002Fimagecraft-ai-alt-text-file-renamer-image-seo\u003C\u002Fa>\u003C\u002Fp>\n\u003Cp>To build from source:\u003C\u002Fp>\n\u003Col>\n\u003Cli>Install \u003Ca href=\"https:\u002F\u002Fnodejs.org\u002F\" rel=\"nofollow ugc\">Node.js\u003C\u002Fa> (v18+)\u003C\u002Fli>\n\u003Cli>Run \u003Ccode>npm install\u003C\u002Fcode> to install dependencies\u003C\u002Fli>\n\u003Cli>Run \u003Ccode>npm run dev\u003C\u002Fcode> for development (Vite dev server on port 4000)\u003C\u002Fli>\n\u003Cli>Run \u003Ccode>npm run prod\u003C\u002Fcode> to build production assets into \u003Ccode>assets\u002F\u003C\u002Fcode>\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Ch3>How to Use ImageCraft\u003C\u002Fh3>\n\u003Cp>\u003Cspan class=\"embed-youtube\" style=\"text-align:center; display: block;\">\u003Ciframe loading=\"lazy\" class=\"youtube-player\" width=\"750\" height=\"422\" src=\"https:\u002F\u002Fwww.youtube.com\u002Fembed\u002FVVhnzSmrjLE?version=3&rel=1&showsearch=0&showinfo=1&iv_load_policy=1&fs=1&hl=en-US&autohide=2&wmode=transparent\" allowfullscreen=\"true\" style=\"border:0;\" sandbox=\"allow-scripts allow-same-origin allow-popups allow-presentation allow-popups-to-escape-sandbox\">\u003C\u002Fiframe>\u003C\u002Fspan>\u003C\u002Fp>\n","Generate SEO-aware and WooCommerce-context-aware alt text using your own API key from Anthropic, OpenAI, or Google Gemini.",79,"","6.9.4","5.8","7.4",[53,54,55,21,56],"accessibility","ai","alt-text","image-seo","https:\u002F\u002Fwww.softminal.com\u002Fproducts\u002Fimagecraft-ai-alt-text-file-renamer-image-seo","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fimagecraft-ai-alt-text-file-renamer-image-seo.1.0.0.zip","2026-03-15T10:48:56.248Z",{"slug":61,"name":62,"version":63,"author":64,"author_profile":65,"description":66,"short_description":67,"active_installs":68,"downloaded":69,"rating":70,"num_ratings":71,"last_updated":72,"tested_up_to":73,"requires_at_least":74,"requires_php":48,"tags":75,"homepage":80,"download_link":81,"security_score":27,"vuln_count":28,"unpatched_count":28,"last_vuln_date":29,"fetched_at":30},"filenames-to-latin","Filenames to latin","2.7","webvitaly","https:\u002F\u002Fprofiles.wordpress.org\u002Fwebvitaly\u002F","\u003Cul>\n\u003Cli>\u003Cstrong>\u003Ca href=\"http:\u002F\u002Fweb-profile.net\u002Fwordpress\u002Fplugins\u002F\" title=\"WordPress Pro plugins\" rel=\"nofollow ugc\">WordPress Pro plugins\u003C\u002Fa>\u003C\u002Fstrong>\u003C\u002Fli>\n\u003Cli>\u003Cstrong>\u003Ca href=\"http:\u002F\u002Fweb-profile.net\u002Fwordpress\u002Fplugins\u002Ffilenames-to-latin\u002F\" title=\"Plugin page\" rel=\"nofollow ugc\">Filenames to latin\u003C\u002Fa>\u003C\u002Fstrong>\u003C\u002Fli>\n\u003Cli>\u003Cstrong>\u003Ca href=\"http:\u002F\u002Fweb-profile.net\u002Fdonate\u002F\" title=\"Support the development\" rel=\"nofollow ugc\">Donate\u003C\u002Fa>\u003C\u002Fstrong>\u003C\u002Fli>\n\u003Cli>\u003Cstrong>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fwebvitalii\u002Ffilenames-to-latin\" title=\"Fork\" rel=\"nofollow ugc\">GitHub\u003C\u002Fa>\u003C\u002Fstrong>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Plugin sanitizes Cyrillic (Ukrainian, Russian, Belorussian), German, French, Polish, Spanish, Hungarian, Czech, Slovak, Greek, Swedish, Finnish, Latvian, Estonian, Mongolian, Bosnian, Croatian, Serbian, Montenegrin and other filenames to latin characters during upload.\u003Cbr \u002F>\nPlugin converts filenames to lowercase automatically.\u003C\u002Fp>\n\u003Ch4>List of sanitizing letters:\u003C\u002Fh4>\n\u003Cp>а б в г д е ж з и й к л м н о п р с т у ф х ц ч ш щ ь ю я ґ є і ї ё ы ъ э ў ą ć ę ł ń ó ś ź ż à á â ã ä å æ ç è é ê ë ì í î ï ð ñ ò ó ô õ ö × ø ù ú û ü ý þ ÿ ß ő ű ě š č ř ž ý á é ď ť ň ú ů α β γ δ ε ζ η θ ι κ λ μ ν ξ ο π ρ σ τ υ φ χ ψ ω ά έ ή ί ό ύ ώ ς ΐ ϊ ϋ ΰ đ.\u003C\u002Fp>\n\u003Ch4>Useful:\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fpage-list\u002F\" title=\"list of pages with shortcodes\" rel=\"ugc\">“Page-list” – show list of pages with shortcodes\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fiframe\u002F\" title=\"embed content\" rel=\"ugc\">“Iframe” – embed content\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"http:\u002F\u002Fweb-profile.net\u002Fwordpress\u002Fplugins\u002F\" title=\"WordPress Pro plugins\" rel=\"nofollow ugc\">WordPress Pro plugins\u003C\u002Fa>\u003C\u002Fli>\n\u003C\u002Ful>\n","Sanitize filenames to latin during upload.",10000,90962,98,14,"2020-08-09T23:02:00.000Z","5.5.18","3.0",[76,22,77,78,79],"cyrillic","media","sanitize","upload","https:\u002F\u002Fwordpress.org\u002Fplugins\u002Ffilenames-to-latin\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Ffilenames-to-latin.2.7.zip",{"slug":83,"name":84,"version":85,"author":86,"author_profile":87,"description":88,"short_description":89,"active_installs":68,"downloaded":90,"rating":91,"num_ratings":92,"last_updated":93,"tested_up_to":49,"requires_at_least":94,"requires_php":95,"tags":96,"homepage":101,"download_link":102,"security_score":13,"vuln_count":28,"unpatched_count":28,"last_vuln_date":29,"fetched_at":30},"mime-types-plus","Mime Types Plus","2.05","Katsushi Kawamori","https:\u002F\u002Fprofiles.wordpress.org\u002Fkatsushi-kawamori\u002F","\u003Ch4>Edit Mime Type\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>Add Mime Type\u003C\u002Fli>\n\u003Cli>Remove Mime Type\u003C\u002Fli>\n\u003Cli>Change File Type\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Edit Users\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>Specify uploadable extensions for each user\u003C\u002Fli>\n\u003Cli>Specify non-uploadable extensions for each user\u003C\u002Fli>\n\u003C\u002Ful>\n","Add the mime type that can be used in the media library to each file type.",85682,76,10,"2025-11-25T21:57:00.000Z","4.7","8.0",[97,98,99,100],"file-type","filename-extention","media-library","mime-types","https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fmime-types-plus\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fmime-types-plus.2.05.zip",{"slug":104,"name":105,"version":106,"author":107,"author_profile":108,"description":109,"short_description":110,"active_installs":111,"downloaded":112,"rating":13,"num_ratings":113,"last_updated":114,"tested_up_to":115,"requires_at_least":48,"requires_php":48,"tags":116,"homepage":48,"download_link":120,"security_score":27,"vuln_count":28,"unpatched_count":28,"last_vuln_date":29,"fetched_at":30},"rus-to-lat-advanced","rus to lat advanced","1.1","Dmitry Fatakov","https:\u002F\u002Fprofiles.wordpress.org\u002Fdmf_tuva\u002F","\u003Cp>Russian filename and link (from title) translitter for WordPress. Russian filename and link (maked from title) not correct save by WordPress.\u003C\u002Fp>\n\u003Cp>Для примера из заголовка “Приказ № 343 г.Кызыл\u002F.!@#$%^&*()_+|`~ё” получается правильная ссылка на запись “prikaz-N-343-g-kyzyl-_jo”\u003Cbr \u002F>\nимя файла “Фото Ивановой И.И..jpg” сохранится как “Foto Ivanovoi I.I.jpg” (обратите внимание на 2 точки перед jpg)\u003Cbr \u002F>\nПодпись останется по-русски.\u003C\u002Fp>\n\u003Ch3>License\u003C\u002Fh3>\n\u003Cp>The Russian filename and link (from title) translitter for WordPress plugin is copyright © 2013 with \u003Ca href=\"http:\u002F\u002Fwww.gnu.org\u002Fcopyleft\u002Fgpl.html\" rel=\"nofollow ugc\">GNU General Public License\u003C\u002Fa> by dmf_tuva.\u003C\u002Fp>\n\u003Cp>This program is free software; you can redistribute it and\u002For modify it under\u003Cbr \u002F>\nthe terms of the \u003Ca href=\"http:\u002F\u002Fwww.gnu.org\u002Fcopyleft\u002Fgpl.html\" rel=\"nofollow ugc\">GNU General Public License\u003C\u002Fa> as published by the Free\u003Cbr \u002F>\nSoftware Foundation; either version 2 of the License, or (at your option) any\u003Cbr \u002F>\nlater version.\u003C\u002Fp>\n\u003Cp>This program is distributed in the hope that it will be useful, but WITHOUT ANY\u003Cbr \u002F>\nWARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A\u003Cbr \u002F>\nPARTICULAR PURPOSE. See the GNU General Public License for more details.\u003C\u002Fp>\n","Russian filename and link (from title) translitter for Wordpress.",7000,78729,8,"2017-11-28T10:17:00.000Z","4.0.38",[22,117,118,119],"link","title","translit","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Frus-to-lat-advanced.zip",{"slug":122,"name":123,"version":124,"author":125,"author_profile":126,"description":127,"short_description":128,"active_installs":129,"downloaded":130,"rating":131,"num_ratings":113,"last_updated":132,"tested_up_to":133,"requires_at_least":134,"requires_php":135,"tags":136,"homepage":48,"download_link":139,"security_score":13,"vuln_count":28,"unpatched_count":28,"last_vuln_date":29,"fetched_at":30},"sanitize-spanish-filenames","Clean Filenames","1.2.4","Samuel Aguilera","https:\u002F\u002Fprofiles.wordpress.org\u002Fsamuelaguilera\u002F","\u003Ch4>Features\u003C\u002Fh4>\n\u003Ch4>It takes the following steps for getting cleaner and safe to use filenames\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>Removes or replace special\u002Finternational characters that can make your filenames not compliant with servers that don’t have support for international locales and filenames, or third-party services. (e.g. ‘España.png’ will become ‘Espana.png’, ‘prüfen’ will become ‘prufen’).\u003C\u002Fli>\n\u003Cli>Replaces any ‘+’ in the filename with ‘-‘ (e.g. ‘A+nice+picture.png’ will become ‘A-nice-picture.png’).\u003C\u002Fli>\n\u003Cli>Replaces any ‘.’ character before the one used for file extension with ‘-‘(e.g. ‘A.nice.picture.png’ will become ‘A-nice-picture.png’).\u003C\u002Fli>\n\u003Cli>After running all character replacement filters, a filter is applied to ensure that the filename only contains letters, numbers, underscores, dashes, and dots. Any other character will be removed from the filename.\u003C\u002Fli>\n\u003Cli>And finally all letters in the filename are set to lowercase to prevent issues with case insensitive systems. \u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>This reduces problems with some servers, services, plugins… That may have problems handling filenames with special or international characters.\u003C\u002Fp>\n\u003Cp>The plugin does its job during file upload process, so it’ll change only filenames for files being \u003Cem>uploaded after plugin activation\u003C\u002Fem>.\u003C\u002Fp>\n\u003Cp>It supports a large number of international characters, including but not only, characters from belarusian, cyrillic alphabet, czech, german, hebrew, hungarian, russian, polish, spanish, ukrainian, and some other special characters (e.g. №, @, $, etc.).\u003C\u002Fp>\n\u003Cp>If you have any questions or need support, please check FAQ for additional information before asking.\u003C\u002Fp>\n\u003Ch4>Requirements\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>WordPress 3.0 or higher\u003C\u002Fli>\n\u003C\u002Ful>\n","Removes or replace international or special characters that can make your filenames not compliant with some servers or services.",3000,28857,92,"2025-04-14T15:06:00.000Z","6.7.5","4.9","5.6",[22,137,78,79,138],"international-characters","utf-8","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fsanitize-spanish-filenames.1.2.4.zip",{"attackSurface":141,"codeSignals":190,"taintFlows":208,"riskAssessment":209,"analyzedAt":216},{"hooks":142,"ajaxHandlers":173,"restRoutes":186,"shortcodes":187,"cronEvents":188,"entryPointCount":189,"unprotectedCount":34},[143,150,155,158,161,165,169],{"type":144,"name":145,"callback":146,"priority":147,"file":148,"line":149},"filter","manage_media_columns","add_filename_column",99,"file-media-renamer.php",82,{"type":151,"name":152,"callback":153,"priority":92,"file":148,"line":154},"action","manage_media_custom_column","add_filename_column_content",83,{"type":151,"name":156,"callback":157,"priority":13,"file":148,"line":36},"admin_footer","jscripts",{"type":144,"name":159,"callback":160,"file":148,"line":27},"attachment_fields_to_edit","fields",{"type":151,"name":162,"callback":163,"file":148,"line":164},"edit_attachment","save_no_ajax",86,{"type":144,"name":166,"callback":167,"priority":168,"file":148,"line":131},"attachment_fields_to_save","prepare",20,{"type":151,"name":170,"callback":171,"file":148,"line":172},"admin_head","csstyle",93,[174,179,184],{"action":175,"nopriv":176,"callback":177,"hasNonce":176,"hasCapCheck":176,"file":148,"line":178},"save-attachment-compat",false,"save_with_ajax",87,{"action":180,"nopriv":176,"callback":181,"hasNonce":182,"hasCapCheck":176,"file":148,"line":183},"fmrequest","ajax_renamer",true,89,{"action":180,"nopriv":182,"callback":181,"hasNonce":182,"hasCapCheck":176,"file":148,"line":185},90,[],[],[],3,{"dangerousFunctions":191,"sqlUsage":192,"outputEscaping":194,"fileOperations":195,"externalRequests":28,"nonceChecks":34,"capabilityChecks":34,"bundledLibraries":207},[],{"prepared":113,"raw":28,"locations":193},[],{"escaped":195,"rawEcho":196,"locations":197},2,4,[198,201,203,205],{"file":148,"line":199,"context":200},119,"raw output",{"file":148,"line":202,"context":200},123,{"file":148,"line":204,"context":200},279,{"file":148,"line":206,"context":200},377,[],[],{"summary":210,"deductions":211},"The file-media-renamer plugin v1.3 exhibits a mixed security posture. On the positive side, it demonstrates good practices regarding SQL queries, exclusively using prepared statements, and has no recorded historical vulnerabilities, suggesting a generally well-maintained codebase. It also avoids external HTTP requests and does not bundle any external libraries, further reducing potential attack vectors.\n\nHowever, significant concerns arise from its attack surface. The plugin has three AJAX handlers, one of which lacks authentication checks. This unprotected entry point could potentially be exploited by unauthenticated users to perform unintended actions within the plugin, leading to unauthorized modifications or data exposure. While taint analysis and code signals show no immediate critical issues like unsanitized paths or dangerous functions, the presence of an unprotected AJAX endpoint represents a tangible security risk that needs immediate attention. The limited output escaping also presents a minor concern, though not explicitly detailed as a direct vulnerability in the provided data.\n\nIn conclusion, while the plugin has a clean vulnerability history and good internal coding practices for SQL, the unprotected AJAX handler is a critical flaw. This, combined with the less-than-ideal output escaping, means the plugin is not as secure as it could be. Addressing the unauthenticated AJAX endpoint is paramount to improving its overall security.",[212,214],{"reason":213,"points":113},"AJAX handler without authentication checks",{"reason":215,"points":196},"Limited output escaping (33% properly escaped)","2026-03-16T18:37:12.869Z",{"wat":218,"direct":227},{"assetPaths":219,"generatorPatterns":222,"scriptPaths":223,"versionParams":224},[220,221],"\u002Fwp-content\u002Fplugins\u002Ffile-media-renamer\u002Fassets\u002Fcss\u002Ffile-media-renamer.css","\u002Fwp-content\u002Fplugins\u002Ffile-media-renamer\u002Fassets\u002Fjs\u002Ffile-media-renamer.js",[],[221],[225,226],"file-media-renamer\u002Fassets\u002Fcss\u002Ffile-media-renamer.css?ver=","file-media-renamer\u002Fassets\u002Fjs\u002Ffile-media-renamer.js?ver=",{"cssClasses":228,"htmlComments":231,"htmlAttributes":232,"restEndpoints":234,"jsGlobals":235,"shortcodeOutput":239},[229,230],"FileMediaRenamer-filename","FileMediaRenamer-postname",[],[233],"data-attachment_id",[],[236,237,238],"FileMediaRenamer_filename","FileMediaRenamer_postname","input_filter",[]]