@architecturex/utils.security
TypeScript icon, indicating that this package has built-in type declarations

1.0.11 • Public • Published

@architecturex/utils.security

security

A utility library to aid in various common security-related tasks. This library includes functions for string sanitization, password validation, CSP generation, base64, data masking, and more.

Installation

npm install @architecturex/utils.security

Features

  • String Utilities: Generate random codes and sanitize input strings.
  • Base64 Encoding & Decoding: Convert data between Base64 and other formats.
  • Password Utilities: Includes validation, matching, and encryption.
  • CSP Generator: Helps in creating Content Security Policy directives.
  • Data Masking: Mask email, phone, and generic text to protect sensitive data.
  • String Sanitization: Protect your application against XSS attacks by sanitizing user input.
  • Type-based Validation: Check if the provided input matches the expected type such as string or number.
  • Empty Check: Quickly determine if a given input is empty.

Usage

import security from '@architecturex/utils.security'

String Utilities

Generate a random string:

security.string.code(10) // Outputs: 'A4D2efG7H8'

Input Utilities

Sanitize a string:

security.string.sanitize('<script>alert("hacked")</script>')
// Outputs: '&lt;script&gt;alert(&quot;hacked&quot;)&lt;/script&gt;'

Check if a value is string:

security.input.is('').string()

Check if a value is number

security.input.is(12345).number()

Check if a value is empty

security.input.is({ name: 'John' }).empty() // Outputs: false
security.input.is({}).empty() // Outputs: true
security.input.is([1, 2, 3]).empty() // Outputs: false
security.input.is([]).empty() // Outputs: true
security.input.is('Hello').empty() // Outputs: false
security.input.is('').empty() // Outputs: true

Base64 Encoding & Decoding

Encode a string or object to Base64:

security.base64.encode('Hello World') // Outputs: 'SGVsbG8gV29ybGQ='
security.base64.encode({ msg: 'Hello World' }) // Outputs: 'eyJtc2ciOiAiSGVsbG8gV29ybGQifQ=='

Decode from Base64:

security.base64.decode('SGVsbG8gV29ybGQ=') // Outputs: 'Hello World'

Password Utilities

Validate a password:

security.password.validation('Passw0rd!', { length: 8, special: true })
// Outputs: { isValid: true, reasons: [] }

Check if passwords match and are valid:

security.password.match('Passw0rd!', 'Passw0rd!') // Outputs: true

Encrypt a password:

security.password.encrypt('password') // Outputs: 'sha1 hash'

CSP Generator

Generate a Content Security Policy:

const config = {
  'default-src': ["'self'", 'cdn.example.com'],
  'script-src': ["'self'", 'scripts.example.com']
}
security.csp.generator(config)
// Outputs: "default-src 'self' cdn.example.com; script-src 'self' scripts.example.com"

Data Masking

Mask an email:

security.mask.email('test@example.com') // Outputs: 'tes*****@ex*****.com'

Mask a phone number:

security.mask.phone('1234567890') // Outputs: 'xxxxx67890'

Mask text:

security.mask.text('testingtesting', 2, 2) // Outputs: 'te*******ng'

Contribution

Feel free to suggest improvements, report issues, or contribute to enhancing these utilities. Your feedback and contributions are welcome!

Package Sidebar

Install

npm i @architecturex/utils.security

Weekly Downloads

7

Version

1.0.11

License

MIT

Unpacked Size

11.6 kB

Total Files

5

Last publish

Collaborators

  • architecturex