0

人们将能够在浏览的状态栏中看到 javascript 确认链接。那么,下面的代码是否足够安全以及如何隐藏 javascript 以不显示这一点: javascript:a = confirm('Are you sure you want to purchase this reward?'); if (a) { location.href='./?page=vote&act=rewards&id=8'} else void(0)

Script:

if ($_SESSION['nVotePoints'] >= $data['nCost']) {
            $url = './?page=vote&act=rewards&id=' . $data['id'];
            $confirm = "javascript:a = confirm('Are you sure you want to use purchase this reward?'); if (a) { location.href='{$url}'} else void(0)";
          $data['URL'] = $confirm;
        }
        else
          $data['URL'] = 'javascript: alert(\'' . stripslashes(Template::GetLangVar('VOTE_NEED_VP')) . '\');';

$column[$i++] = Template::Load('vote-reward-column', $data);

亲切的问候。

4

1 回答 1

2

请记住,即使您可以隐藏 JavaScript,这也不是一个安全的系统。有人可以启动 WireShark、IE 的 F12 开发人员工具、Firefox 的 Firebug 或 Chrome 的开发人员工具,并准确查看内容转到哪个页面,或者调试任何涉及 DOM 的调用,即使您的代码完全是乱码。

如果你想保护这样的事情,你不能信任客户端,你需要在服务器上做。否则,有人可以编写自己的代码来调用您的服务,根本不运行 JavaScript,并且完全绕过您的验证逻辑。

于 2013-06-16T22:36:28.380 回答