Skip to content

Node.js and browser 8 lines implementation of a safe eval :)

License

Notifications You must be signed in to change notification settings

M3psipax/cross-safe-eval

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Cross safe eval (DEPRECATED)

NOTE: this library is deprecated because a more simpler and totally secure solution is to use JS-Interpreter library.

Node.js and browser 12 lines implementation of a safe eval :), install this module if you want or hardcode it!

npm i --save cross-safe-eval

use it as follows:

var makeSafeEval = require('cross-safe-eval')

// no globals!!

var safeEval = makeSafeEval()

safeEval('this') // undefined
safeEval('console') // undefined
safeEval('eval') // undefined
safeEval('Math') // undefined
safeEval('window') // undefined, even in browser
safeEval('1 + 1') // 2
// not include local variables
var localNumber = 1034
safeEval('localNumber') // undefined

// include global variables!!

var safeEval2 = makeSafeEval(['Math', 'console'])

safeEval2('2 * Math.PI * 120') // 753.9822368615503
safeEval2('console.log(10)') // 10, undefined

How?

Uses Object.getOwnPropertyNames(this) to obtain all environment globals and take care of it.

About

Node.js and browser 8 lines implementation of a safe eval :)

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 100.0%