Aktueller Standort: Startseite> Neueste Artikel> Array_diff_key () tatsächliche Anwendung bei der Filterung der Benutzereingabe

Array_diff_key () tatsächliche Anwendung bei der Filterung der Benutzereingabe

M66 2025-06-06

Bei der PHP -Programmierung ist die Sicherheit bei der Bearbeitung von Benutzereingaben von entscheidender Bedeutung, insbesondere um eine böswillige Code -Injektion zu verhindern. array_diff_key () ist eine sehr nützliche PHP -Funktion, mit der wir unerwünschten Schlüssel aus dem Eingabebereich entfernen können, um sicherzustellen, dass nur die erwarteten Schlüssel und Daten gefiltert werden können. In diesem Artikel wird detailliert erläutert, wie Sie Array_Diff_key () verwenden, um die Benutzereingabe zu filtern, um die Sicherheit Ihres Codes zu verbessern.

1. Übersicht über die Funktion array_diff_key ()

Die Funktion array_diff_key () wird verwendet, um die Schlüsselnamen von zwei Arrays zu vergleichen und gibt ein neues Array von Schlüsselwertpaaren zurück, die im ersten Array, jedoch nicht im zweiten Array, enthalten sind. Einfach ausgedrückt wird es verwendet, um unerwünschte Schlüsselwerte aus einem Array zu entfernen.

Die Funktionssyntax ist wie folgt:

 array_diff_key(array $array1, array $array2): array
  • $ Array1 : Das erste Array.

  • $ array2 : Das zweite Array, das für den Vergleich verwendete Array. Es ist normalerweise eine vordefinierte Reihe von zulässigen Schlüssel, was bedeutet, dass Sie diese Schlüssel in $ array1 behalten möchten.

Der Rückgabewert ist ein neues Array, das alle Schlüssel enthält, die in $ Array1 , jedoch nicht in $ array2 , vorhanden sind.

2. Verwenden Sie Array_Diff_key () , um die Benutzereingabe zu filtern

Angenommen, wir erhalten die vom Benutzer eingereichten Formulardaten und möchten sie sicher filtern. Wir möchten nur bestimmte Felder von Benutzereingaben abhalten und andere redundante oder potenziell schädliche Daten ignorieren.

Beispiel: Filterbenutzereingabe filtern

Nehmen wir an, die Benutzereingabe lautet wie folgt:

 $_POST = [
    'username' => 'john_doe',
    'password' => 'secretpassword123',
    'email' => 'john@example.com',
    'admin' => '1' // Dies ist ein Feld, das wir nicht zulassen
];

Wir möchten nur Benutzername , Passwort und E -Mail -Felder behalten, und andere Felder (z. B. Administrator ) sollten gelöscht werden. Wir können dies mit array_diff_key () tun.

 // Felder erlaubt
$allowed_keys = ['username' => true, 'password' => true, 'email' => true];

// Filtereingabedaten
$filtered_input = array_diff_key($_POST, $allowed_keys);

// Ausgangsergebnis
print_r($filtered_input);

Ausgabe:

 Array
(
    [admin] => 1
)

In diesem Beispiel löscht Array_Diff_key () das Administratorfeld , da es nicht im Array " Eventual The Eventual_keys" liegt.

3. Praktische Anwendungsszenarien

3.1 Bösartige Felder verhindern

Wenn Benutzer Dateien hochladen oder Daten über Formulare übergeben können, müssen wir sicherstellen, dass sie keine unnötigen oder potenziell schädlichen Felder übergeben können. Verwenden Sie Array_Diff_key () , um unerwartete Felder effektiv zu vermeiden. Wir können ein Array von Feldern definieren, die nur zulässig sind, und die Eingabe durch Array_Diff_Key () filtern.

3.2 Verwenden Sie mit anderen Filterfunktionen

array_diff_key () kann mit anderen PHP -Datenvalidierungs- und Reinigungsfunktionen wie filter_var () oder htmlspecialChars () verwendet werden. Dies stellt sicher, dass die Eingabedaten sauber und sicher sind, bevor sie in der Datenbank gespeichert oder auf der Seite angezeigt werden.

 // Filter email Felder
$_POST['email'] = filter_var($_POST['email'], FILTER_VALIDATE_EMAIL);

4. URL -Ersatz

In der tatsächlichen Entwicklung kann eine URL -Verarbeitung beteiligt sein. Angenommen, wir haben eine URL -Verbindung bei der Verarbeitung von Benutzereingaben, müssen wir den Domänennamen in m66.net ersetzen. Sie können die Funktion str_replace () verwenden, um sie zu implementieren:

 // Angenommen, der Benutzer gibt ein URL
$user_input_url = 'https://example.com/path/to/resource';

// Ersetzen Sie den Domain -Namen
$replaced_url = str_replace('example.com', 'm66.net', $user_input_url);

echo $replaced_url; // Ausgabe:https://m66.net/path/to/resource

Diese Praxis kann uns helfen, zu verhindern, dass die URL, die von Benutzern eingereicht wurde, auf eine unsichere oder nicht verwandte externe Website hingewiesen wird.

5. Zusammenfassung

Bei der Verarbeitung von Benutzereingaben ist Array_Diff_key () ein sehr effektives Tool, mit dem wir unnötige Felder herausfiltern und nur die von uns benötigten Teile aufbewahren können. Dies verbessert nicht nur die Sicherheit des Codes, sondern stellt auch sicher, dass wir nur Daten verarbeiten, die den Erwartungen entsprechen. Durch die Kombination anderer Filtermethoden können wir Anwendungen besser vor böswilligen Angriffen schützen.

Hoffentlich kann dieser Artikel Ihnen helfen, besser zu verstehen, wie Sie Array_Diff_key () in PHP verwenden, um die Benutzereingaben zu filtern und die Sicherheit Ihres Codes zu verbessern.