邪恶的eval和new Function使用介绍
作者 佚名
来源 ASP编程
浏览
发布时间 2013-07-09
代码: 复制代码 代码如下: // 友善提醒:为了你的手指安全,请在Chrome下运行 ''alert("hello")''.replace(/.+/, eval); ''alert("hello")''.replace(/.+/, function(m){new Function(m)();}); var i = 0; eval(new Array(101).join(''alert(++i);'')); var i = 0; new Function(new Array(101).join(''alert(++i);''))(); 解释: 1、string.replace(regexp, replacement): replacement可以是function. In this case, the function is invoked for each match, and the string it returns is used as the replacement text. 2、new Function(argument_names..., body): 注意参数中的body. 这样,用new Function(''body'')() , 也可以像eval一样动态执行代码。 3、array.join(separator): 这个最简单,不多说。在这里,巧妙的用来解决了一个无聊问题:写段代码,运行后打印出从1到100的整数,不允许使用循环、跳转和递归。 这些代码可以干什么?可以肯定的是可以干很多猥琐的事。具体是啥呢,自己想啰。 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |
你可能对下面的文章感兴趣
关于邪恶的eval和new Function使用介绍的所有评论