Description
This plugin helps protect your website from two common types of Cross-Site Scripting (XSS) vulnerabilities:
- Reflected XSS: This happens when harmful scripts are hidden in a website’s URL. If a user clicks a link with such a script, it can run in their browser, potentially stealing their data or taking control of their system.
- Self-XSS: This occurs when a user’s own input on your website is displayed back to them in an unsafe way, allowing malicious scripts to run in their browser.
This plugin provides several layers of protection:
Blocking: When active, the plugin checks URLs for specific characters. If it finds any of these characters in the URL, it redirects the user to prevent a potential XSS attack. You can customize which characters to block or allow.
- Opening Round Bracket
(
- Closing Round Bracket
)
- Less than Sign
<
- Greater than Sign
>
- Opening Square Bracket
[
- Closing Square Bracket
]
- Opening Curly Bracket
{
- Pipe or Vertical Bar
|
- Closing Curly Bracket
}
Encoding: For an extra layer of security, the plugin encodes certain characters found in URL parameters. This stops harmful code from running, even if it’s present in the URL. You can also choose to exclude specific parameters from being encoded.
- Exclamation Mark
!
- Double Quotation
"
- Single Quotation
'
- Opening Round Bracket
(
- Closing Round Bracket
)
- Asterisk Sign
*
- Less than Sign
<
- Greater than Sign
>
- Grave Accent `
- Caret
^
- Opening Square Bracket
[
- Closing Square Bracket
]
- Opening Curly Bracket
{
- Pipe or Vertical Bar
|
- Closing Curly Bracket
}
Escaping HTML in $_GET
: This plugin automatically makes HTML characters safe within the $_GET
variable. This is vital if your website pulls data from URLs and displays it as part of your web page. It helps prevent malicious scripts from being injected through user-provided input.
Important Notes:
- After activating the plugin, thoroughly test your website forms, especially if you use WooCommerce. Make sure the plugin doesn’t interfere with your shopping cart and checkout processes.
- We welcome bug reports for this plugin on GitHub: https://github.com/samiahmedsiddiqui/prevent-xss-vulnerability/issues. Please remember that GitHub is for bug reports only, not general support.
By using this plugin and following these recommendations, you can significantly improve your website’s defense against XSS attacks.
Screenshots
This screen shows how the plugin removes XSS-related parameters from the URL and redirects the user (Recommended).
This screen demonstrates how the plugin encodes parameters in the URL that could be used in an XSS attack.
This screen illustrates how the plugin escapes HTML from the
$_GET
PHP variable, which is commonly used to read data from the URL (Recommended).This image shows the message added to the developer console to alert the user about an XSS attack.
This screenshot displays the customizable message shown in the developer console to warn users about Self-XSS attacks.
Installation
You can install this plugin either through your WordPress dashboard or manually via FTP.
From within WordPress
- Go to ‘Plugins > Add New’.
- Search for “Prevent XSS Vulnerability”.
- Click “Activate” for “Prevent XSS Vulnerability” on your Plugins page.
- Then, follow the “After activation” steps below.
Manually (via FTP)
- Upload the
prevent-xss-vulnerability
folder to the/wp-content/plugins/
directory. - Activate “Prevent XSS Vulnerability” from the ‘Plugins’ menu in WordPress.
- Then, follow the “After activation” steps below.
After activation
- Go to the
Prevent XSS Vulnerability
page in your WordPress Admin Dashboard. - Adjust the settings to fit your website’s needs.
- That’s it! You’re done.
FAQ
-
Q. Why should I install this plugin?
-
A. Installing this plugin is the easiest way to protect your site from XSS vulnerabilities.
-
Q. Does this plugin escape HTML when printing search results?
-
A. Yes, this plugin escapes HTML in the
$_GET
variable, which is often used to display data from the URL in HTML. However, if your site heavily relies on$_GET
for other functions, you might need to do thorough testing to ensure everything works correctly. -
Q. Does this plugin conflict with any other plugins?
-
A. While we haven’t received reports of major conflicts, it’s always a good idea to thoroughly test your website after installing any new plugin.
Reviews
Contributors & Developers
“Prevent XSS Vulnerability” is open source software. The following people have contributed to this plugin.
Contributors“Prevent XSS Vulnerability” has been translated into 1 locale. Thank you to the translators for their contributions.
Translate “Prevent XSS Vulnerability” into your language.
Interested in development?
Browse the code, check out the SVN repository, or subscribe to the development log by RSS.
Changelog
2.1.0 – July 03, 2025
- Key Changes & Improvements:
- Enhanced Console Visibility: The prominent “Stop!” message now appears in a much larger (48px), bold, red font with a black text shadow to grab immediate attention. The main warning message also uses a larger, more readable font (20px).
- Improved Console Grouping: The entire Self-XSS warning is now grouped within a
console.group('Self-XSS Warning')
block. This keeps all related messages together in the developer console, making the warning stand out and preventing it from getting lost among other console output.
Earlier versions
- For a detailed changelog of earlier versions, please refer to the separate
changelog.txt
file.