gpt4 book ai didi

Javascript 安全问题/使用 eval()

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:37:23 28 4
gpt4 key购买 nike

我看到以下形式的代码 - 这样使用 eval() 安全吗?

function genericTakeAction(frm_name,id,pagenum,action)
{
var rset=eval("document."+frm_name);

var x=eval("document."+frm_name+".edit_key");
var y=eval("document."+frm_name+".cAction")
if(x)
x.value=id;
if(y)
y.value=action;

page_list(pagenum);
}

它用作:

  <a href="javaScript:;" onClick="genericTakeAction('frmSearch',
'<?php echo $rec_id;?>','<?php echo $pagenum?>','makeOpen')"
class='link6'>Make Open</a>

最佳答案

无论是对还是错,都没有必要复杂化。

function genericTakeAction(frm_name,id,pagenum,action)
{
var rset = document[frm_name];

var x = rset.edit_key;
var y = rset.cAction;

if(x)
x.value=id;
if(y)
y.value=action;

page_list(pagenum);
}

这是有效的,因为在 JavaScript 中,您可以通过以下两种方式之一访问对象的属性:使用点分语法和文字标识符,例如x = obj.foo;,或使用括号语法和字符串标识符,例如x = obj["foo"];。 (请注意 foo 在第一个中没有用引号引起来,但在第二个中用引号引起来;但是两者完全做同样的事情。另请注意,由于在第二种情况下属性名称是一个字符串,您可以使用任何结果为字符串的表达式,因此 y = "f"; x = obj[y + "oo"]; 也有效。)

附言这是错误的

关于Javascript 安全问题/使用 eval(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6956716/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com