Serwery w Polsce · Warszawa Dyski NVMe

Jak chroniż stronę przed wstrzykniżciem SQL (SQL Injection) Drukuj

  • 0

SQL Injection — jak działać

SQL Injection to atak polegający na wstrzyknięciu złośliwego kodu SQL do pól formularza lub parametrów URL. Może skutkować kradzieżą całej bazy danych lub jej usunięciem.

Przykład podatnego kodu PHP

<?php
// NIEBEZPIECZNE - NIE rób tak!
$id = $_GET['id'];
$query = "SELECT * FROM users WHERE id = $id";
$result = $pdo->query($query);
?>

Bezpieczny kod z Prepared Statements

<?php
// BEZPIECZNE - zawsze używaj Prepared Statements
$stmt = $pdo->prepare("SELECT * FROM users WHERE id = ?");
$stmt->execute([$_GET['id']]);
$result = $stmt->fetchAll();
?>

Ochrona WordPress przed SQL Injection

// Użyj $wpdb->prepare() zamiast bezpośrednich zapytań
global $wpdb;
$user_id = intval($_GET['user_id']);
$result = $wpdb->get_results(
    $wpdb->prepare("SELECT * FROM {$wpdb->users} WHERE ID = %d", $user_id)
);

ModSecurity i WAF

Włącz ModSecurity na serwerze — filtruje SQL Injection na poziomie serwera WWW przed dotarciem do PHP. host247.pl ma ModSecurity aktywny domyślnie.


Czy ta odpowiedź była pomocna?

« Wstecz