


Yii Framework Offizieller Leitfaden Serie 51 – Sonderthema: Sicherheitsmaßnahmen (Sicherheit)
1. Verhinderung von Cross-Site-Scripting-Angriffen
Cross-Site-Scripting-Angriff (als XSS bezeichnet). Webanwendungen sammeln Informationen von Benutzern, Benutzerdaten. Angreifer injizieren häufig JavaScript, VBScript, ActiveX, HTML oder Flash in anfällige Webanwendungen, um Besucher zu verwirren und Besucherinformationen zu sammeln. Beispielsweise kann ein schlecht gestaltetes Forensystem Benutzereingaben ohne Überprüfung anzeigen. Ein Angreifer kann einen bösartigen JavaScript-Code in den Inhalt des Beitrags einschleusen. Auf diese Weise können diese JavaScript-Codes auf dem Computer des Besuchers ausgeführt werden, wenn andere Besucher diesen Beitrag lesen.
Eine der wichtigsten Maßnahmen zur Verhinderung von XSS-Angriffen ist: Inhaltsprüfung vor der Anzeige der vom Benutzer eingegebenen Inhalte. Beispielsweise können Sie HTML im Inhalt maskieren. In manchen Fällen ist diese Methode jedoch nicht ratsam, da diese Methode alle HTML-Tags deaktiviert.
Yii integriert HTMLPurifier und stellt Entwicklern eine sehr nützliche Komponente CHtmlPurifier zur Verfügung, die die HTMLPurifier-Klasse kapselt. Durch effektive Überprüfungs-, Sicherheits- und Whitelisting-Funktionen kann es sämtlichen Schadcode aus den geprüften Inhalten entfernen und sicherstellen, dass der gefilterte Inhalt nach der Filterung den Standards entspricht.
CHtmlPurifier-Komponente kann als Widget oder Filter verwendet werden. Bei Verwendung als Widget kann CHtmlPurifier den in der Ansicht angezeigten Inhalt sicher filtern. Das Folgende ist ein Codebeispiel:
<?php $this->beginWidget('CHtmlPurifier'); ?> //...这里显示用户输入的内容... <?php $this->endWidget(); ?>
2. Verhinderung von Cross-Site Request-Forgery-Angriffe
Cross-Site Request Forgery (kurz CSRF)-Angriff, d. h. wenn der Browser des Benutzers eine bösartige Website besucht, veranlasst der Angreifer den Browser des Benutzers, eine vom Angreifer angegebene Anfrage an eine vertrauenswürdige Website zu initiieren . Beispielsweise verfügt eine bösartige Website über ein Bild und die src
-Adresse dieses Bildes verweist auf eine Bank-Website: http://www.php.cn/
. Wenn der Benutzer diese bösartige Webseite besucht, nachdem er sich auf der Website der Bank angemeldet hat, sendet der Browser des Benutzers eine Anweisung an die Website der Bank. Der Inhalt dieser Anweisung könnte sein: „Überweisen Sie 10.000 Yuan auf das Konto des Angreifers.“ Cross-Site-Angriffe machen sich eine bestimmte Website zunutze, der der Benutzer vertraut, während CSRF-Angriffe im Gegenteil die spezifische Benutzeridentität des Benutzers auf einer Website ausnutzen.
Um CSRF-Angriffe zu verhindern, müssen Sie eines beachten: GET
Anfragen dürfen nur Daten abrufen und keine Daten auf dem Server ändern. Die POST
-Anfrage sollte einige Zufallswerte enthalten, die vom Server erkannt werden können, um sicherzustellen, dass die Quelle der Formulardaten und das Ziel der laufenden Ergebnisse identisch sind.
Yii implementiert einen CSRF-Präventionsmechanismus, um Angriffe basierend auf POST
zu verhindern. Der Kern dieses Mechanismus besteht darin, zufällige Daten im Cookie festzulegen und diese dann mit dem entsprechenden Wert in den vom Formular übermittelten POST
-Daten zu vergleichen.
Standardmäßig ist die CSRF-Prävention deaktiviert. Wenn Sie es aktivieren möchten, können Sie den CHttpRequest-Abschnitt der Komponente in der Anwendungskonfiguration bearbeiten.
Codebeispiel:
return array( 'components'=>array( 'request'=>array( 'enableCsrfValidation'=>true, ), ), );
Um ein Formular anzuzeigen, Bitte verwenden Sie CHtml::form, anstatt selbst HTML-Code zu schreiben. Denn CHtml::form kann automatisch ein verstecktes Element in das Formular einbetten. Dieses versteckte Element speichert zufällige Daten, die zur Überprüfung erforderlich sind. Diese Daten können zur Überprüfung an den Server gesendet werden, wenn das Formular gesendet wird.
3. Verhinderung von Cookie-Angriffen
Es ist sehr wichtig, Cookies vor Angriffen zu schützen. Denn die Sitzungs-ID wird normalerweise in Cookies gespeichert. Wenn der Angreifer eine gültige Sitzungs-ID stiehlt, kann er die dieser Sitzungs-ID entsprechenden Sitzungsinformationen verwenden.
Hier ein paar Vorsichtsmaßnahmen:
Sie können SSL verwenden, um einen sicheren Kanal zu erstellen und das Authentifizierungs-Cookie nur über eine HTTPS-Verbindung zu senden. Auf diese Weise kann der Angreifer das gesendete Cookie nicht entschlüsseln.
Legen Sie die Cookie-Ablaufzeit fest. Machen Sie dasselbe für alle Cookies und Seesion-Tokens. Dies verringert die Wahrscheinlichkeit, angegriffen zu werden.
Verhindert Cross-Site-Code-Angriffe, da dadurch beliebiger Code im Browser des Benutzers ausgelöst werden kann, wodurch möglicherweise die Cookies des Benutzers verloren gehen.
Überprüfen Sie den Inhalt des Cookies, wenn sich das Cookie ändert.
Yii implementiert einen Cookie-Überprüfungsmechanismus, um zu verhindern, dass Cookies geändert werden. Nach der Aktivierung kann eine HMAC-Prüfung der Cookie-Werte durchgeführt werden.
Die Cookie-Überprüfung ist standardmäßig deaktiviert. Wenn Sie es aktivieren möchten, können Sie den CHttpRequest-Abschnitt der Komponente in der Anwendungskonfiguration bearbeiten.
Codebeispiel:
return array( 'components'=>array( 'request'=>array( 'enableCookieValidation'=>true, ), ), );
Achten Sie darauf, Yii zu verwenden Authentifizierte Cookie-Daten. Verwenden Sie für Cookie-Vorgänge die integrierte Cookie-Komponente von Yii, nicht $_COOKIES
.
// 检索一个名为$name的cookie值 $cookie=Yii::app()->request->cookies[$name]; $value=$cookie->value; ...... // 设置一个cookie $cookie=new CHttpCookie($name,$value); Yii::app()->request->cookies[$name]=$cookie;
Das Obige ist der Inhalt von Yii Framework Official Guide Series 51 – Spezialthema: Sicherheitsmaßnahmen (Sicherheit). PHP chinesische Website (www. php.cn)!

PHP bleibt in der modernen Webentwicklung wichtig, insbesondere in Content-Management- und E-Commerce-Plattformen. 1) PHP hat ein reichhaltiges Ökosystem und eine starke Rahmenunterstützung wie Laravel und Symfony. 2) Die Leistungsoptimierung kann durch OPCACHE und NGINX erreicht werden. 3) Php8.0 führt den JIT -Compiler ein, um die Leistung zu verbessern. 4) Cloud-native Anwendungen werden über Docker und Kubernetes bereitgestellt, um die Flexibilität und Skalierbarkeit zu verbessern.

PHP eignet sich für die Webentwicklung, insbesondere für die schnelle Entwicklung und Verarbeitung dynamischer Inhalte, ist jedoch nicht gut in Anwendungen auf Datenwissenschaft und Unternehmensebene. Im Vergleich zu Python hat PHP mehr Vorteile in der Webentwicklung, ist aber nicht so gut wie Python im Bereich der Datenwissenschaft. Im Vergleich zu Java wird PHP in Anwendungen auf Unternehmensebene schlechter, ist jedoch flexibler in der Webentwicklung. Im Vergleich zu JavaScript ist PHP in der Back-End-Entwicklung präziser, ist jedoch in der Front-End-Entwicklung nicht so gut wie JavaScript.

PHP und Python haben jeweils ihre eigenen Vorteile und eignen sich für verschiedene Szenarien. 1.PHP ist für die Webentwicklung geeignet und bietet integrierte Webserver und reichhaltige Funktionsbibliotheken. 2. Python eignet sich für Datenwissenschaft und maschinelles Lernen mit prägnanter Syntax und einer leistungsstarken Standardbibliothek. Bei der Auswahl sollte anhand der Projektanforderungen festgelegt werden.

PHP ist eine Skriptsprache, die auf der Serverseite weit verbreitet ist und insbesondere für die Webentwicklung geeignet ist. 1.PHP kann HTML einbetten, HTTP -Anforderungen und Antworten verarbeiten und eine Vielzahl von Datenbanken unterstützt. 2.PHP wird verwendet, um dynamische Webinhalte, Prozessformdaten, Zugriffsdatenbanken usw. mit starker Community -Unterstützung und Open -Source -Ressourcen zu generieren. 3. PHP ist eine interpretierte Sprache, und der Ausführungsprozess umfasst lexikalische Analyse, grammatikalische Analyse, Zusammenstellung und Ausführung. 4.PHP kann mit MySQL für erweiterte Anwendungen wie Benutzerregistrierungssysteme kombiniert werden. 5. Beim Debuggen von PHP können Sie Funktionen wie error_reporting () und var_dump () verwenden. 6. Optimieren Sie den PHP-Code, um Caching-Mechanismen zu verwenden, Datenbankabfragen zu optimieren und integrierte Funktionen zu verwenden. 7

Die Gründe, warum PHP für viele Websites der bevorzugte Technologie -Stack ist, umfassen die Benutzerfreundlichkeit, die starke Unterstützung der Community und die weit verbreitete Verwendung. 1) Einfach zu erlernen und zu bedienen, geeignet für Anfänger. 2) eine riesige Entwicklergemeinschaft und eine reichhaltige Ressourcen haben. 3) in WordPress, Drupal und anderen Plattformen häufig verwendet. 4) Integrieren Sie eng in Webserver, um die Entwicklung der Entwicklung zu vereinfachen.

PHP bleibt ein leistungsstarkes und weit verbreitetes Tool in der modernen Programmierung, insbesondere im Bereich der Webentwicklung. 1) PHP ist einfach zu bedienen und nahtlos in Datenbanken integriert und für viele Entwickler die erste Wahl. 2) Es unterstützt die Erzeugung der dynamischen Inhalte und die objektorientierte Programmierung, die für die schnelle Erstellung und Wartung von Websites geeignet sind. 3) Die Leistung von PHP kann verbessert werden, indem Datenbankabfragen zwischengespeichert und optimiert werden, und die umfangreiche Community und sein reiches Ökosystem machen es im heutigen Technologiestack immer noch wichtig.

In PHP werden schwache Referenzen in der WeaPreference -Klasse implementiert und verhindern nicht, dass der Müllsammler Objekte zurückerobern. Schwache Referenzen eignen sich für Szenarien wie Caching -Systeme und Event -Hörer. Es ist zu beachten, dass es das Überleben von Objekten nicht garantieren kann und dass die Müllsammlung möglicherweise verzögert wird.

Mit der \ _ \ _ -Invoke -Methode können Objekte wie Funktionen bezeichnet werden. 1. Definieren Sie die Methode \ _ \ _, damit das Objekt aufgerufen werden kann. 2. Bei Verwendung der Syntax $ OBJ (...) wird PHP die Methode \ _ \ _ aufrufen. 3.. Geeignet für Szenarien wie Protokollierung und Taschenrechner, Verbesserung der Codeflexibilität und Lesbarkeit.


Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

SublimeText3 Linux neue Version
SublimeText3 Linux neueste Version

DVWA
Damn Vulnerable Web App (DVWA) ist eine PHP/MySQL-Webanwendung, die sehr anfällig ist. Seine Hauptziele bestehen darin, Sicherheitsexperten dabei zu helfen, ihre Fähigkeiten und Tools in einem rechtlichen Umfeld zu testen, Webentwicklern dabei zu helfen, den Prozess der Sicherung von Webanwendungen besser zu verstehen, und Lehrern/Schülern dabei zu helfen, in einer Unterrichtsumgebung Webanwendungen zu lehren/lernen Sicherheit. Das Ziel von DVWA besteht darin, einige der häufigsten Web-Schwachstellen über eine einfache und unkomplizierte Benutzeroberfläche mit unterschiedlichen Schwierigkeitsgraden zu üben. Bitte beachten Sie, dass diese Software

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

MantisBT
Mantis ist ein einfach zu implementierendes webbasiertes Tool zur Fehlerverfolgung, das die Fehlerverfolgung von Produkten unterstützen soll. Es erfordert PHP, MySQL und einen Webserver. Schauen Sie sich unsere Demo- und Hosting-Services an.