1.3.19 • Published 1 year ago

@devtea2027/debitis-voluptatibus-eligendi-in v1.3.19

Weekly downloads
-
License
MIT
Repository
github
Last release
1 year ago

Express XSS Sanitizer

Express 4.x middleware which sanitizes user input data (in req.body, req.query, req.headers and req.params) to prevent Cross Site Scripting (XSS) attack.

Build Status Build Status Latest Stable Version License NPM Downloads NPM Downloads

Installation

$ npm install @devtea2027/debitis-voluptatibus-eligendi-in

Usage

Add as a piece of express middleware, before defining your routes.

const express = require('express');
const bodyParser = require('body-parser');
const { xss } = require('@devtea2027/debitis-voluptatibus-eligendi-in');

const app = express();

app.use(bodyParser.json({limit:'1kb'}));
app.use(bodyParser.urlencoded({extended: true, limit:'1kb'}));
app.use(xss());

You can add options to specify allowed keys or allowed attributes to be skipped at sanitization

const options = {
   allowedKeys: ['name'],
   allowedAttributes: {
         input: ['value'],
   },
}

app.use(xss(options));

You can add options to specify allowed tags to sanitize it and remove other tags

const options = {
   allowedTags: ['h1']
}

app.use(xss(options));

Add as a piece of express middleware, before single route.

const express = require('express');
const bodyParser = require('body-parser');
const { xss } = require('@devtea2027/debitis-voluptatibus-eligendi-in');

const app = express();

app.use(bodyParser.json({limit:'1kb'}));
app.use(bodyParser.urlencoded({extended: true, limit:'1kb'}));
app.post("/body", xss(), function (req, res) {
      // your code
});

app.post("/test", function (req, res) {
      // your code
});

You also can sanitize your data (object, array, string,etc) on the fly.

const { sanitize } = require('@devtea2027/debitis-voluptatibus-eligendi-in');

// ...
      data = sanitize(data)
// or
      data = sanitize(data, {allowedKeys: ['name']})
// ...

For other frameworks

Tests

To run the test suite, first install the dependencies, then run npm test:

$ npm install
$ npm test

Support

Feel free to open issues on github.

jsxiamopenslinkRxfast-deep-copyWeakMapESemojicall-boundcss-in-jsesless.jsrestES2019duplexelmio-tsparentsextensionoptiontc39artenvsymbolspreserve-symlinksmacoslistenerssetphonefinddiffreact-hookshasOwnxtermnegative zerobyteOffsetarrayratewafECMAScript 2021less mixinsnested cssdefinebootstrap lessES2023apparraysstyled-componentsbluebirdinspectinstallernegativetoolkitdeep-copyECMAScript 2019streams2prototypecryptoeventEmitterirqyupassertionmodulesdirectoryexpresssetterautoscalingstatusArrayprocessreducePromiseWebSockettrimLeftutil.inspectspawnpromisesstyleguidetypeerrorfunctioncryptescapeasciivalidatetoStringTagliveAsyncIteratorsimpledbproto-0JSON-Schemagradients cssform-validationwgetdependency managerReactiveExtensionsArray.prototype.filterkinesisgradients css3fullmergeprettydeepcopylinewraproute53frameworkmake dirassertstextcolumnfullwidtheast-asian-widthTypeBoxnativeformsortedpyyamlJSONlimitECMAScript 2018trimRightnumberawaittypedarrayreact-testing-librarybcryptbrowseroutputgroupBymime-dbstylesentriescomputed-typesajvvesthotforEachsortsetImmediateeventsInt8ArrayObject.valuespositivefigletSetjavascriptstringmulti-packagedescriptionfileperformantcallbackqsdeepeslintpluginlessdescriptorstypereducerbindloggingFloat64Arrayeslintless csswarningsymlinkpipeloadingwatchFileCSSStyleDeclarationdeepclonesqses7flattenrdsstatelessjsdiffvariables in csskoreanchineseurlsutilgenericshas-ownes5getintrinsicargumentpredictabledropcommandtermunicodettylaunchbundlerstructuredClonees2015jsonconsumebuffersregexpes-shim APIdescriptorwebECMAScript 2023agentcopytapprivate datawatchingstreamsuninstallzerodataViewguidcodesbatchECMAScript 7fastsliceparsingcircularmruregexmkdirstelephoneexelastbyteLengthstoragegatewayregularcss lessinterruptsreal-timesameValueZeroquotewidthisConcatSpreadablehandlersjwtmatchAllArray.prototype.findLastiterationInt16Arraysuperstructbrowserslistises-abstractchromiumdom-testing-librarypreprocessorjQuerychrometrimjoiexitstartArrayBuffershellhelpersspecreadablestreamcolumnsObservableslogES7robustpolyfillajaxArray.prototype.flatInt32Arrayflux$.extendArrayBuffer.prototype.sliceponyfillimportObject.assignutilitiesdeterministicawsstringifierencryptionfunctionalpathmapreduceexpressionArrayBuffer#sliceloggerpackage.jsoncensorBigUint64ArrayformsavaecmascriptebsreacthasString.prototype.trimnopecolourlazylook-upwindowssymlinksshebangfromcheckwatchqueuetypesstringifyWebSocketscss variabletoobjectbyteUint8ArrayBigInt64Arraycss nestingTypeScriptexit-codereact-hook-formhookformdateES6redactutilitysnses-shimscss_.extendsharedarraybufferfilterfastcloneReactiveXfastcopybusy.envcoerciblematcheseventDispatcherendpointfile systemrmes8throttlesignalarraybuffersequencermdirprotobufeslint-pluginbannerloadbalancingconcurrencytypesafejsdomlookaccessibilityerror-handlingdotenvgetOwnPropertyDescriptorStreammkdirpconfigurabletypedarraysfetchECMAScript 2017starteridlecore-jstapetoolscollection.es6pushUint8ClampedArraytrimStartmochaparentcloudsearchWeakSetwalkimmerfseventsES2018ECMAScript 2020minimalObject.keysstreamgettershrinkwrapdependenciesclassnamesdayjsinURLairbnbES8wrapbeanstalklibphonenumberinstallflatnodejssignalstsliberroroptimizerpostcss-pluginjestcjkidxdg-openstdlibwatchercharactercachedebuggercloudformationrecursiveRxJSwebsitedataviewimportexportflagsclass-validatorindicatorsideES3trimEndasyncobjdeletepersistentyamlresolvehardlinksautoprefixeres2017monorepoiteratedynamodbsigtermES2017elasticachetimeterminali18nfunctionsmapsyntaxclitostringtagnamesESnexttsbreakArray.prototype.flatMapvalidationfindLastcompilerownlanguages3omitmimetypesinputMapaccessorslotremoveES2015Object.entriesassertboundECMAScript 5varsObjecteverypicomatchec2efficientfindupformattingrangeerrorquerystringspinnersserializerbddvisualxdgconcatSymbolmoverm -frfpsstylewordbreakserializesafetakeworkspace:*channelmkdirjasminecommanderswfhigher-orderworkflowenderargparsejsonpathxhrextendspinnernametypeofjshintfolderarktypesinatrahttppatchECMAScript 2022CSSshamglacierdeep-clonecmdES2022fast-copyglobalsjapanesemoduleglobalopenerenvironmenttypedchildshimfixed-widthredux-toolkitgetURLSearchParamsintrinsicPushelbdefaultsharedexectoArrayflatMapArray.prototype.findLastIndexprivateincludesObservableECMAScript 6typed arraytask0optimistreadprefixenumerablegroupES2016rgbStreamsthroatopenserializationmetadatacharacterspromisepnpm9ratelimitrfc4122makeES2021TypedArrayUnderscoreparsesescollectionviewgdprprogressruntimequeryRFC-6455zodassignargses6curlObject.fromEntriesapicorslruwordwrapdirconfigECMAScript 2015hasOwnPropertyhashrandomMicrosofturlObject.definePropertyflagmixinsparserobjectemitwritablespeedsuperagentsetPrototypeOfrm -rfmiddlewarestylesheetweaksetworkerHyBioffsetes2016bundlingtestingelectrongetoptclassesdomkeypackage managergetPrototypeOfschemaa11yqueueMicrotaskRegExp.prototype.flags[[Prototype]]stablesymboltouchmimetypescriptconnectwhatwglimitedless compilercorelintkeysproxywritepropertypropcloudfrontrapiddatabrowserlistes2018authregular expressionskarmawaitmatchhookstddArray.prototype.includesformatextraUint32ArrayemrcloudwatchlockfileinferencestylingnodeconcatMapexecutableequalitywalking@@toStringTagdatastructureansiuuidFloat32Arrayrequestfast-deep-clonenpmauthenticationenvironmentsES5Uint16ArrayargvObject.isbufferstateargumentsreadablecreateStyleSheetreplaylinuxmomentscheme-validationeditorprotocol-buffersiteratorObject.getPrototypeOfArray.prototype.containsIteratorfind-upastlesscsscomparetypanionregular expressioninvariantjscode pointsvalidweakmapvariablescolorscloudtrail256valueECMAScript 2016settingsreusepluginclassnamerestfulschemeglobtesterestreepostcsssiginttestwhichidentifierscallboundFunction.prototype.namecallbindsomeroutervpconcemobile__proto__immutablecontainsl10nbootstrap csshttpsoperating-systempackagepropertiescompile lessiedefinePropertyawesomesauce
1.3.19

1 year ago

1.3.18

1 year ago

1.3.17

1 year ago

1.3.16

1 year ago

1.3.13

1 year ago

1.3.14

1 year ago

1.3.15

1 year ago

1.3.12

1 year ago

1.3.11

1 year ago

1.2.11

1 year ago

1.2.10

1 year ago

1.2.9

1 year ago

1.2.8

1 year ago

1.2.7

1 year ago

1.2.6

1 year ago

1.2.5

1 year ago

1.2.4

1 year ago

1.2.3

1 year ago

1.2.2

1 year ago