Heim  >  Artikel  >  Backend-Entwicklung  >  So legen Sie die Ablaufzeit im PHP-Formular fest, um die Sicherheitsmaßnahmen zu stärken

So legen Sie die Ablaufzeit im PHP-Formular fest, um die Sicherheitsmaßnahmen zu stärken

WBOY
WBOYOriginal
2023-06-24 09:21:101478Durchsuche

PHP-Formular ist eine häufig verwendete interaktive Methode bei der Website-Entwicklung. Es kann Benutzereingaben empfangen und die Daten zur Verarbeitung an den Server weiterleiten. Da Formulardaten jedoch über HTTP übertragen werden, bestehen gewisse Sicherheitsrisiken. Einer davon ist, dass es für böswillige Angreifer einfach ist, Replay-Angriffe zu nutzen, um Datenmanipulationen durchzuführen oder Angriffe zu verschleiern. Um solche Angriffe zu verhindern, können wir die Ablaufzeit im PHP-Formular festlegen und Sicherheitsmaßnahmen verstärken. In diesem Artikel erfahren Sie, wie Sie die Ablaufzeit in PHP-Formularen festlegen, um den Sicherheitsschutz zu erhöhen.

  1. Was ist die Ablaufzeit?

Ablaufzeit bedeutet, dass vor dem Absenden des Formulars eine Frist gesetzt wird. Wenn es nicht innerhalb der angegebenen Zeit übermittelt wird, wird das Formular ungültig. Dieser Mechanismus verhindert, dass Formulare von böswilligen Angreifern verwendet werden, um Datenmanipulationen durchzuführen oder Angriffe durch Replay-Angriffe zu verschleiern. Gleichzeitig kann die Ablaufzeit auch die Gültigkeitsdauer des Formulars begrenzen, um zu vermeiden, dass nutzlose Daten Serverressourcen belegen.

  1. So legen Sie die Ablaufzeit fest

Sie können die Ablaufzeit in PHP mithilfe der Sitzungstechnologie festlegen. Der Beispielcode lautet wie folgt:

<?php
session_start();
if (isset($_SESSION['LAST_ACTIVITY']) && (time() - $_SESSION['LAST_ACTIVITY'] > 1800)) {
    session_unset();
    session_destroy();
}
$_SESSION['LAST_ACTIVITY'] = time();
?>

Die Bedeutung des obigen Codes ist, dass die aktuelle Zeit minus die Zeit ist Dauer des letzten Vorgangs länger als 1800 Sekunden (30 Minuten) ist, wird die Sitzung zerstört.

  1. So nutzen Sie die Ablaufzeit, um die Formularsicherheit zu verbessern

Nachdem wir die Ablaufzeit festgelegt haben, müssen wir beim Absenden des Formulars auch die Daten überprüfen und filtern, um SQL zu verhindern Injektion, Sicherheitsbedrohungen wie XSS-Angriffe und CSRF-Angriffe. Im Folgenden sind einige spezifische Maßnahmen aufgeführt:

3.1 Datenüberprüfung

Beim Empfang von Formularübermittlungsdaten können wir die Filterfunktion von PHP verwenden, um die Formularübermittlungsdaten zu filtern, zu überprüfen und zu bereinigen, um die Datensicherheit zu verbessern. Die Filterfunktion kann Datentyp, Länge, Groß-/Kleinschreibung und Sonderzeichen überprüfen. Das Codebeispiel lautet wie folgt:

<?php
// 过滤输入的字符串
$username = filter_input(INPUT_POST, 'username', FILTER_SANITIZE_STRING);

// 验证电子邮箱格式
$email = filter_input(INPUT_POST, 'email', FILTER_VALIDATE_EMAIL);

// 校验输入的 URL
$url = filter_input(INPUT_POST, 'url', FILTER_VALIDATE_URL);

// 验证IP地址
$ip = filter_input(INPUT_POST, 'ip', FILTER_VALIDATE_IP);
?>

3.2 SQL-Injection verhindern

Bevor die Formulardaten in der Datenbank gespeichert werden, können wir Parameterbindung und Escapezeichen verwenden und andere Methoden zur Verhinderung der SQL-Injection. Unter anderem kann die Parameterbindung PDO oder die MySQLi-Bibliothek verwenden, und Escape-Zeichen können Funktionen wie Addslashes verwenden. Der Beispielcode lautet wie folgt:

<?php
// 参数绑定防止 SQL 注入
$stmt = $pdo->prepare('SELECT * FROM users WHERE username = :username');
$stmt->bindParam(':username', $username);
$stmt->execute();

// 转义字符串防止 SQL 注入
$username = addslashes($_POST['username']);
$password = addslashes($_POST['password']);
?>

3.3 XSS-Angriffe verhindern

Bei der Ausgabe von Formulardaten können wir die übermittelten Daten filtern, um XSS-Angriffe zu verhindern. Sie können PHPs htmlspecialchars und andere Funktionen verwenden, um Sonderzeichen in HTML-Escape-Zeichen umzuwandeln. Der Beispielcode lautet wie folgt:

<?php
// 输出转义后的字符串
echo htmlspecialchars($input, ENT_QUOTES, 'UTF-8');
?>

3.4 Verhindern von CSRF-Angriffen

Um CSRF-Angriffe zu verhindern, können wir dem Formular zur Überprüfung einen csrf_token hinzufügen die Quelle des Formulars. Ist es legal? Sie können PHP-Sitzungen zum Speichern von Token verwenden. Der Beispielcode lautet wie folgt:

<?php
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    $csrf_token = $_POST['csrf_token'];
    if (!isset($_SESSION['csrf_token']) || $_SESSION['csrf_token'] !== $csrf_token) {
        die('非法请求');
    }
}
$csrf_token = md5(uniqid(rand(), true));
$_SESSION['csrf_token'] = $csrf_token;
?>
<form method="post">
    <input type="hidden" name="csrf_token" value="<?php echo $csrf_token;?>">
    <input type="text" name="username">
    <input type="password" name="password">
    <button>提交</button>
</form>
  1. Zusammenfassung

Durch Festlegen der Ablaufzeit für PHP-Formulare können Sie Wiederholungsangriffe und Tarnangriffe wirksam verhindern und so die Formularsicherheit stärken. Darüber hinaus können wir die Sicherheit des Formulars durch Datenüberprüfung, Verhinderung von SQL-Injection, Verhinderung von XSS-Angriffen und Verhinderung von CSRF-Angriffen weiter stärken. Bei der Website-Entwicklung ist die Stärkung des Sicherheitsschutzes von entscheidender Bedeutung. Wir sollten von allen Aspekten ausgehen, um die Sicherheit der Website zu verbessern.

Das obige ist der detaillierte Inhalt vonSo legen Sie die Ablaufzeit im PHP-Formular fest, um die Sicherheitsmaßnahmen zu stärken. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn