Question

J'ai vu ces deux dans des scripts et je me demandais strictement un point de vue de la sécurité si l'on pipiait l'autre?Est-il préférable d'inclure le contenu de la page sécurisé dans une instruction IF?

if(!login_check($mysqli)) {
    header("Location: index.php"); 
    exit;
}

//Secure Page Content.

ou ...

if (login_check($mysqli)) {

    //Secure Page Content.

} else { 
    header("Location: index.php");
}
exit;

Était-ce utile?

La solution

strictement d'un point de sécurité, je ne dirais aucune différence.Cela étant dit.Le premier est beaucoup plus clair à lire.Si le contenu de la page est plus qu'un écran, vous avez perdu une trace de l'endroit où la conditionnelle se termine.Cela pourrait entraîner une erreur quelque part dans le code dans lequel autre d'autre est exécuté et que la page devient ouverte.

Fourniture d'une sortie directement après que le chèque élimine une erreur humaine devenant un trou de sécurité dans le reste du code et, à mon avis, il est beaucoup plus facile de digérer et de ne pas conduire à une question de dépannage à l'avenir.

Autres conseils

Ceci peut être réduit à la question suivante: Acceptez-vous plusieurs points de retour?

cas 1:

function (a, b, c) {
    if (a < b) {
        return a;
    }
    return c;
}

Cas 2:

function (a, b, c) {
    var result;
    if (a < b) {
        result = a;
    } else {
        result = c;
    }
    return result;
}

Ceci est un problème de style de code.Il n'y a pas de bonne réponse objective Bien que je suis sûr que tout le monde a sa préférence.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top