这段php代码安全吗?如何隐藏javascript链接?

这段php代码安全吗?如何隐藏javascript链接?,php,javascript,security,Php,Javascript,Security,人们将能够在浏览的状态栏中看到javascript确认链接。那么,下面的代码是否足够安全,以及如何隐藏javascript以避免出现这种情况: javascript:a=confirm('您确定要购买此奖励吗?');如果(a){location.href='./?page=vote&act=rewards&id=8'}否则无效(0) 脚本: if ($_SESSION['nVotePoints'] >= $data['nCost']) { $url = './?pa

人们将能够在浏览的状态栏中看到javascript确认链接。那么,下面的代码是否足够安全,以及如何隐藏javascript以避免出现这种情况:
javascript:a=confirm('您确定要购买此奖励吗?');如果(a){location.href='./?page=vote&act=rewards&id=8'}否则无效(0)

脚本:

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,完全绕过您的验证逻辑。

您可以将其混淆,使其看起来怪异且不可读,但您不能完全隐藏客户端脚本,即JS,不让客户端看到。继续,并将其搞糟,这将是最好的学习练习,当你知道它搞砸了,你必须修复它。如果您使用HTTP GET方法来更改服务器的状态(=“购买奖励”),那么这是一种不好的做法。状态更改操作应始终通过POST、PUT或DELETE调用。GET操作可以很容易地被机器人程序、爬虫程序调用,它们存储在浏览器历史记录中等。在这种情况下,CSRF仍然容易受到攻击。公开javascript似乎不是问题。你认为什么是不安全的暴露它?用户可以利用什么?我认为最终,当用户点击链接时将到达的脚本将从帐户中扣除。在这种情况下,如果他们操纵url,他们所能“利用”的就是在猜测的链接上付费。这将使他们付出代价。所以,我真的看不出这有什么不安全感?