
NSFW (Not Safe For Work) Security & Risk Analysis
wordpress.org/plugins/nsfwWrap the NSFW content in [nsfw][/nsfw] to hide it. Readers can click on the "Show" link to read the hidden content.
Is NSFW (Not Safe For Work) Safe to Use in 2026?
Generally Safe
Score 85/100NSFW (Not Safe For Work) has no known CVEs and is actively maintained. It's a solid choice for most WordPress installations.
The "nsfw" plugin v1.0 exhibits a strong security posture based on the provided static analysis. The absence of any AJAX handlers, REST API routes, shortcodes, or cron events significantly limits the plugin's attack surface, and there are no identified entry points that lack authentication or permission checks. Furthermore, the code signals reveal no dangerous functions, file operations, or external HTTP requests, and all SQL queries are properly prepared, which is an excellent practice. The lack of vulnerability history, including CVEs, also suggests a history of secure development or no prior significant security issues being publicly reported.
However, a notable concern arises from the output escaping. With one total output and 0% properly escaped, this indicates a potential for Cross-Site Scripting (XSS) vulnerabilities. Any data processed by the plugin and directly outputted to the browser without proper sanitization or escaping could be manipulated by attackers to inject malicious scripts. While the taint analysis shows no specific flows with unsanitized paths, the general lack of output escaping across all outputs is a significant risk that needs immediate attention. The absence of nonce and capability checks, while not immediately risky due to the limited attack surface, would become a severe issue if new entry points were introduced without proper security measures.
In conclusion, the plugin has a very small attack surface and employs good practices regarding SQL queries and avoiding dangerous functions. The vulnerability history is clean, which is a positive sign. The primary weakness lies in the complete lack of output escaping, presenting a tangible risk of XSS. Addressing this specific issue should be the highest priority to improve the plugin's overall security.
Key Concerns
- Output escaping missing on all outputs
- No capability checks
- No nonce checks
NSFW (Not Safe For Work) Security Vulnerabilities
NSFW (Not Safe For Work) Code Analysis
Output Escaping
NSFW (Not Safe For Work) Attack Surface
WordPress Hooks 1
Maintenance & Trust
NSFW (Not Safe For Work) Maintenance & Trust
Maintenance Signals
Community Trust
NSFW (Not Safe For Work) Alternatives
Raw HTML
raw-html
Lets you use raw HTML or any other code in your posts. You can also disable smart quotes and other automatic formatting on a per-post basis.
Custom CSS and JS
custom-css-and-js
Custom CSS and JavaScript allows you to add custom internal and external CSS and JavaScripts to individual posts.
Insert JavaScript and CSS
insert-javascript-css
Adds fields to the post and page edit pages that allow you to insert custom JavaScript or CSS for that post or page.
Page Specific Scripts
page-specific-scripts
Simple and easy to use wordpress plugin to add jQuery/JS Scripts only to specific pages.
Specific CSS/JS for Posts and Pages
specific-cssjs-for-posts-and-pages
With Specific CSS/JS for Posts and Pages you can add CSS or JavaScript files to a specific page or post.
NSFW (Not Safe For Work) Developer Profile
4 plugins · 250 total installs
How We Detect NSFW (Not Safe For Work)
Patterns used to identify this plugin on WordPress sites during automated security audits and web crawling.
Asset Fingerprints
/wp-content/plugins/nsfw/nsfwquicktag.js/wp-content/plugins/nsfw/nsfwquicktag.jsHTML / DOM Fingerprints
<div>
<p>NSFW (Not Safe For Work): <a href="javascript:;" onclick="var noise = this.parentNode.parentNode.getElementsByTagName('div')[0]; if (noise.style.display == 'none') { noise.style.display = ''; this.innerHTML = 'Hide'; noise.style.paddingBottom = '1em'; this.parentNode.style.marginBottom = '0.5em'; } else { noise.style.display = 'none'; this.innerHTML = 'Show'; }">Show</a></p>
<div style="display:none;">