SXW.js
About
SXW.js is a javascript library that is used to display console warnings against Self XSS attacks.
Download via
Usage
Using npm
- Install the npm package using
npm i @sxwjs/sxwjs
- Import sxwjs module
- Call the required function inside sxwjs module
import sxwjs from '@sxwjs/sxwjs'; ... ... sxwjs.printWarning();
Using js file directly
- Include the sxw.js file in your website.
- The script will register built-in functions into
window.sxwjs
object. - At the end of the HTML document call the printWarning function in
window.sxwjs
as shown in the sample code.<script> window.sxwjs.printWarning(); </script>
Using nuget
- Install the nuget package
- Include the sxw.js file from the content folder into your website.
- At the end of the HTML document call the printWarning function in
window.sxwjs
similar to the one mentioned above.
Customizations
Sections
The warning displayed in console contains three sections.
- A huge STOP sign
- A caution text in bold
- A detailed message saying that this section is intented for developers only. It also warns aginst copy pasting content in the console.
Configuration
SXW.js has a config object with the following variables,
Variable name | Default value | Description |
---|---|---|
stopColor | red | the colour of the stop sign |
stopFontWeight | bold | Font weight for stop sign |
cautionFontWeight | bold | Font weight for caution sign |
cautionFontSize | 15px | Font size for caution sign |
Example js object:
var config = {
stopColor: "red",
stopFontWeight: "bold",
cautionFontWeight: "bold",
cautionFontSize: "15px",
};
Content
SXW.js has a predefined object with the following variables for defining the content to be displayed,
Variable name | Default value | Description |
---|---|---|
stopText | * based stop sign text |
The text used to print STOP sign |
cautionText | Caution: DO NOT PROCEED. | Text for caution notice |
warningText | This section is intended for developers only. Don't copy paste anything in this area.\nIf someone told you to copy and paste something here, it is a scam and will give them access to your account. In that case, kindly report this to our support team. | The content of the detailed error message |
var content = {
en: {
stopText: "********* ********* ********* *********\n*** *** *** *** *** ***\n*** *** *** *** *** ***\n********* *** *** *** *********\n *** *** *** *** ***\n *** *** *** *** ***\n********* *** ********* ***",
cautionText: "Caution: DO NOT PROCEED.",
warningText: "This section is intended for developers only. Don't copy paste anything in this area.\nIf someone told you to copy and paste something here, it is a scam and will give them access to your account. In that case, kindly report this to our support team."
}
};
You can define content in multiple languages as shown here. Just pass the appropriate language code to the printing function.
Functions
There are three functions in the library that will be available into the window.sxwjs
object.
printStop
- Prints just the huge stop sign.printCautionNotice
- Prints the caution notice.printWarningText
- Prints the the detailed error message.printWarning
- Prints all the three sections.setConfig
- Assigns the provided configuration.getConfig
- Retrives the configuration.setContent
- Can be used to modifiy the content such as warningText, cautionNotice, etc...getContent
- Retrives the content that will be displayed on the console.
None of these functions are called by default. You can choose to call them as you wish.
Example Usage:
window.sxwjs.setConfig(myConfig);
window.sxwjs.printWarning('en');
window.sxwjs.printStop('en');
window.sxwjs.printCautionNotice('en');
Credits & Thanks
Contributors
Kolappan Nathan |
yuvaraj |
This project follows the all-contributors specification. Contributions of any kind welcome!
Services & Tools used
- Github - Provides free hosting for repos and website.
- js.org - Provides subdomain for our website.
- Shields.io - Provides those beatutiful status icons.
- Azure Devops - Free CI/CD for open source projects.
- ImgBot - Automatic compression of new images
- Pull - Automatic update of forked repos
- allcontributors - Helps maintaing list of contributors of the project
- Adobe Spark - Used to create logo, banners, etc...