Javascript重定向的安全性


Security of Javascript redirecting

我进行了一系列检查,以确定用户是否有资格访问页面,如果他们被拒绝访问,我当前会提醒他们,并使用Javascript重定向他们。我意识到可以很容易地关闭Javascript并绕过重定向,所以我添加了一个使用PHP重定向它们的语句。

<script>
    window.alert("Access denied.");
    window.location.href='index.php';
</script>
<noscript>
    <?php header('Location: index.php'); ?>
</noscript>

这更好吗?还是我应该用不同的方式重定向?

感谢

首先:在输出任何内容之前,您需要从PHP发送头(因为这样头就已经发送了)。

所以你应该在你的脚本顶部做这样的事情:

<?php
if ($user_is_eligible) {
    header('Location: index.php');
    die();
}

die();部分很重要,因为它确保脚本停止在那里,并且不会发送任何可能不让用户看到的内容。