人们将能够在浏览的状态栏中看到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);
亲切的问候。
请记住,即使您可以隐藏JavaScript,这也不是一个安全的系统。有些人可以启动WireShark, IE的F12开发者工具,Firefox的Firebug,或者Chrome的开发者工具,并准确地看到东西去了哪个页面,或者调试任何触及DOM的调用,即使你的代码是完全乱码。
如果你想保护这样的事情,你不能信任客户端,你需要在服务器上这样做。否则,其他人可以编写自己的代码来调用你的服务,根本不运行JavaScript,并且完全绕过你的验证逻辑。