Benutzer daran hindern, den Kontrollkästchenwert mit so etwas wie FireBug zu bearbeiten?

Ich habe eine Admin-Seite, die eine Reihe von Datensätzen auflistet, und neben jedem Datensatz befindet sich ein Kontrollkästchen, mit dem der Status "Aktiv" festgelegt wird. Jedes Kontrollkästchen enthält einen Wert, der an die ID des Datensatzes in der Datenbank gebunden ist. Wenn jemand FireBug verwendet, kann er den Wert des Kontrollkästchens leicht in eine andere Zahl ändern, wodurch der falsche Datensatz in der Datenbank verursacht wird.

Ich mache mir darüber keine großen Sorgen, da es sich nur um eine Admin-Seite handelt, die nur einen Benutzer hat, und ich bin sicher, dass er nichts über FireBug weiß. Aber ich war nur neugierig, falls ich in Zukunft auf dieses Problem stoße eine öffentlichere Seite.

Hier ist der Code, den ich derzeit habe, damit Sie eine Vorstellung davon bekommen, was ich tue.

Das HTML + PHP ..

<input type="checkbox" class="active" name="active<?php echo $id; ?>" id="active<?php echo $id; ?>" <?php if ($active == 1): ?>checked="checked"<?php endif; ?> value="<?php echo $id; ?>">

jQuery ajax ..

$("input.active").click(function() {

var loader = $(this).prev().prev();

$(loader).css("visibility","visible");
// store the values from the form checkbox box, then send via ajax below
var check_active = $(this).is(':checked') ? 1 : 0;
var check_id = $(this).attr('value');

console.log(check_active);
console.log(check_id);

    $.ajax({
        type: "POST",
        url: "active.php",
        data: {id: check_id, active: check_active},
        success: function(){
            $(loader).css("visibility","hidden");

        }
    });
return true;
});

Hier ist active.php ..

<?php

include("dbinfo.php");
mysql_connect($server,$username,$password);
@mysql_select_db($database) or die( "Unable to select database"); 

$active = mysql_real_escape_string($_POST['active']);
$id = mysql_real_escape_string($_POST['id']);

$addEntry = "UPDATE entries SET active = '$active' WHERE id = '$id'";
mysql_query($addEntry) or die(mysql_error());


mysql_close();
?>

Antworten auf die Frage(2)

Ihre Antwort auf die Frage