1.2.6 • Published 7 years ago

script_sanitize v1.2.6

Weekly downloads
5
License
MIT
Repository
github
Last release
7 years ago

script_sanitizer.js

A simple npm library to remove script tags but keep other html

npm Build Status npm npm

Installation

Documention

https://doclets.io/eperegrine/script_sanitizer.js/master

Usage

If on Node.js

const script_sanitize = require('../script_sanitize');
var sanitize = script_sanitize.sanitize;

If on a website

<script href="https://cdn.rawgit.com/eperegrine/script_sanitizer.js/master/dist/script_sanitize.min.js"></script>
<script type="text/javascript">
  var sanitize = script_sanitize.sanitize;
</script>

The method is defined as

sanitize(html, options (optional))

and can be used like so

var sanitized = sanitize("<h1>Hello</h1><script>alert('hi')</script>");
//=> <h1>Hello</h1>
var sanitizedWithReplacment = sanitize("<h1>Hello</h1><script>alert('hi')</script>", { replacementText: "no" });
//=> <h1>Hello</h1>no

Attributes

The default attributes are stored in an array which can be refrenced like:

var attrArray = script_sanitize.defaultAttributes;

and if you wanted to make an attribute exempt you could apply it like so

thanks stack overflow

var newAttrArray = script_sanitize.defaultAttributes;
var exemptIndex = newAttrArray.indexOf("onclick");
newAttrArray.splice(exmptIndex, 1);
sanitize("[HTML STUFF]", { attributes: newAttrArray });

The options parameter

OptionDescriptionDefault Value
replacementTextThe text to replace the script tag with""
loopWhether to replace via looping or a single statementtrue
replaceEndTagsAfterIn certain cases the ending script tag is still there, this options ensures it won't betrue
tagsThe tags that should be replaced"script"
attributesThe attributes that should be replaceddefaultAttributes

Utils

UtilDescription
isDefinedChecks if a variable is defined
defaultForSets a default value if a variable is defined
generateRegexForTagGenerates a regex object for a tag
generateRegexForEndTagGenerates a regex object to check an end tag
generateRegexForAttributeGenerates a regex object to check an attribute

License

MIT

Disclaimer

The code uses regex, which has been sourced from here The regex is: /<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script\s*>/gi

Although this library will likely be used for security purposes I, the developer, am not responsible if this pacakge doesn't meet your security requirements so use with caution

1.2.6

7 years ago

1.2.5

7 years ago

1.2.4

8 years ago

1.2.3

8 years ago

1.2.2

8 years ago

1.2.1-b

8 years ago

1.2.0-b

8 years ago

1.1.0

8 years ago

1.0.4

8 years ago

1.0.3

8 years ago

1.0.2

8 years ago

1.0.1

8 years ago

0.1.1

8 years ago

0.1.0

8 years ago

0.0.1

8 years ago

1.0.0

8 years ago