Heim  >  Artikel  >  Backend-Entwicklung  >  Bedrohungen verstehen und die Kontrolle übernehmen: Die Kunst, PHP Cross-Site Request Forgery (CSRF) zu verhindern

Bedrohungen verstehen und die Kontrolle übernehmen: Die Kunst, PHP Cross-Site Request Forgery (CSRF) zu verhindern

WBOY
WBOYnach vorne
2024-02-25 13:04:30833Durchsuche

1. Prinzip des CSRF-Angriffs

PHP-Editor Zimo führt Sie in die Kunst der Verhinderung von PHP-Cross-Site-Request-Forgery (CSRF) ein. CSRF-Angriffe gehören zu den Netzwerksicherheitsbedrohungen, die böswillige Vorgänge ausführen, indem sie Benutzeranfragen verschleiern. Es ist von entscheidender Bedeutung zu verstehen, wie man CSRF-Angriffe erkennt und verhindert. Lassen Sie uns gemeinsam lernen, wie wir Einblicke in potenzielle Bedrohungen gewinnen, globale Kontrollen beherrschen und die Website-Sicherheit gewährleisten können.

2. So verhindern Sie CSRF-Angriffe

2.1 Verwendung von Formular-Tokens

Form-Tokens sind eine einfache CSRF-Präventionsmaßnahme. Fügen Sie in jedes Formular ein zufällig generiertes Token ein und validieren Sie dieses Token auf der ServerSeite. Stimmen die Token nicht überein, wird die Anfrage abgelehnt.

2.2 Synchronisierungstoken verwenden

Sync-Tokens ähneln Form-Tokens, sind jedoch sicherer. Eine Kopie des Synchronisierungstokens wird sowohl auf der Client- als auch auf der Serverseite gespeichert und bei jeder Anfrage verglichen. Stimmen die Token nicht überein, wird die Anfrage abgelehnt.

2.3 Verwendung eines Anti-CSRF-Tokens

Anti-CSRF-Token ist eine fortschrittlichere CSRF-Präventionsmaßnahme. Es verwendet das Referrer-Feld im Http-Anfrageheader, um die Quelle der Anfrage zu überprüfen. Wenn das Feld „Referer“ nicht übereinstimmt, wird die Anfrage abgelehnt.

2.4 Weitere Vorsichtsmaßnahmen

Zusätzlich zu den oben genannten Methoden gibt es weitere Maßnahmen zur Verhinderung von CSRF-Angriffen, darunter:

  • Aktivieren Sie das HTTP Strict Transport Security (HSTS)-Protokoll
  • Verwenden Sie die Content Security Policy (CSP)
  • Verwenden Sie Cross-Origin Resource Sharing (CORS)

3. Democode

Hier ist ein Beispielcode, der zeigt, wie Formulartoken zum Schutz vor CSRF-Angriffen verwendet werden:

<?PHP
session_start();

// 生成随机令牌
$token = bin2hex(random_bytes(16));

// 将令牌存储到会话中
$_SESSION["csrf_token"] = $token;
?>

<fORM action="process.php" method="post">
<input type="hidden" name="csrf_token" value="<?php echo $token; ?>">
<input type="text" name="username">
<input type="passWord" name="password">
<input type="submit" value="Login">
</form>

<?php
// 处理表单
if (isset($_POST["csrf_token"]) && $_POST["csrf_token"] === $_SESSION["csrf_token"]) {
// 表单已验证,可以安全地处理数据
} else {
// 表单未验证,拒绝请求
echo "Invalid CSRF token.";
}
?>

4. Fazit

CSRF-Angriffe stellen eine ernsthafte Bedrohung dar, die jedoch durch entsprechende Vorsichtsmaßnahmen vermieden werden kann. Durch die Verwendung von Formular-Tokens, Synchronisierungs-Tokens, Anti-CSRF-Tokens und anderen Abwehrmaßnahmen können Entwickler ihre Websites vor CSRF-Angriffen schützen.

Das obige ist der detaillierte Inhalt vonBedrohungen verstehen und die Kontrolle übernehmen: Die Kunst, PHP Cross-Site Request Forgery (CSRF) zu verhindern. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:lsjlt.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen