替代eval的方法

摘要:
eval可以自己声明变量,而evil不可以自己声明变量。所以要确保fn字符串不会牵扯到一系列的安全问题,最好在用evil或者eval之前,先过滤一番

1、新建一个script标签,此方法我这里不提供,百度一搜一堆。

2、new 一个function函数(本人认为这种方法比上面那种方法要来的实在方便,且在node里也可使用)

functionevil(fn) {
    var Fn = Function;  //一个变量指向Function,防止有些前端编译工具报错
    return new Fn('return ' +fn)();
}

eval,可能我用着很害怕,所以封装了上面这个同样坑爹的evil(也是抄袭的)。

eval可以自己声明变量,而evil不可以自己声明变量。

两者同样都是不安全。特别在node里使用的,更不安全。

所以要确保fn字符串不会牵扯到一系列的安全问题,最好在用evil或者eval之前,先过滤一番

免责声明:文章转载自《替代eval的方法》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇[题解] bzoj 3600 没有人的算数 (替罪羊树+线段树)Android实现带下划线的EditText(BUG修正)下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

编写前程贷投标loadrunner脚本及总结

1、完成前程贷的(登录,投标) 2、所有的返回信息都用关联函数(web_reg_save_param_ex)进行关联 3、对返回信息用(strcmp)函数进行if判断 4、总结(web_reg_save_param和web_reg_save_param_ex)区别 Action() {              web_reg_save_param_ex(...

supervisor的command执行两条命令

如下supervisor的进程的comand配置参数只能写一个命令 1、要执行多条命令,可以写个sh文件包含多条命令,然后sh -x xxxx.sh,但这样又多了一个文件, 2、把所有命令放在字符串,然后用eval来执行,这样在shell窗口可以执行,但放在supervisor报找不到eval命令。比如: command = eval "python -u...

JAVA tag学习

EVAL_BODY_INCLUDE:把Body读入存在的输出流中,doStartTag()函数可用EVAL_PAGE:继续处理页面,doEndTag()函数可用SKIP_BODY:忽略对Body的处理,doStartTag()和doAfterBody()函数可用SKIP_PAGE:忽略对余下页面的处理,doEndTag()函数可用EVAL_BODY_TA...

《JavaScript面向对象编程指南》

第一章、引言 1.5 面向对象的程序设计常用概念 对象(名词):是指“事物”在程序设计语言中的表现形式。 这里的事物可以是任何东西,我们可以看到它们具有某些明确特征,能执行某些动作。 这些对象特征就叫做属性(形容词),动作称之为方法(动词)。 类:实际上就是对象的设计蓝图或制作配方。类更多的是一种模板,而对象就是在这些模版的基础上被创建出来的。 封装:主要...

GridView嵌套实现

  GridView嵌套实现 效果图: 技术实现: 前台: <%@PageLanguage="C#"AutoEventWireup="true" CodeFile="Default.aspx.cs"Inherits="_Default"%> <!DOCTYPEhtmlPUBLIC"-//W3C//DTD XHTML 1.0 Transit...

Python-字符串str和json格式的转换

str转json str转换为json格式,前提一定需要保证这个str的格式和json是一致的,即左边最外层是大括号,右边的最外层是大括号。如果不一致,推荐用正则进行拆分至和json格式一致1. 通过json.loads进行转换 import jsonstr = '{"key": "wwww", "word": "qqqq"}'j = json.loads...