Für den Fall, dass das Paket erfasst oder die von der App übertragenen Daten geändert werden, erfahren Sie, wie Sie die Sicherheit verbessern und XSS-Angriffe und SQL-Injection verhindern können.
Für den Fall, dass das Paket erfasst oder die von der App übertragenen Daten geändert werden, erfahren Sie, wie Sie die Sicherheit verbessern und XSS-Angriffe und SQL-Injection verhindern können.
Dies hat nichts damit zu tun, ob Ihre App in HTML5 eingebettet ist oder nicht.
Sie können auch die API-Schnittstelle verwenden, um XSS und SQL einzuschleusen.
(1) Wie wird analysiert, wenn der Server manuell angegriffen wird? es und was ist die Lösung?
1 Überprüfen Sie zunächst das Windows-/Linux-Systemprotokoll, um festzustellen, ob der Hacker durch einen Angriff Serverberechtigungen erhalten hat, denn wenn der Server über eine Gotshell verfügt, ist es zu diesem Zeitpunkt immer noch sinnlos, die Schwachstelle zu beheben.
Mysql-Injection-Analyselösung
1 Analysieren und finden Sie Schwachstellenmethoden
(Protokolldatei beim Programmeintrag schreiben) Analysieren Sie die Apache/nginx/iis-Protokolldatei, d. h. alle POST- und GET-Anfragen und -Parameter, prüfen Sie, ob die Die übermittelten Parameter sind im MySQL-Schlüsselwort
vorhanden (durchsuchen Sie die gesamte Datei nach dem MySQL-Schlüsselwort Union/select/and/from/sleep. Wenn es vorhanden ist, suchen Sie nach der PHP-Datei, die der Anforderungsadresse und dem entsprechenden PHP-Code und MySQL entspricht). Ausführungsanweisung. Suchen Sie dann nach den Erstellungs- und Änderungszeiten des gesamten Webverzeichnisordners und -texts, um zu überprüfen, ob eine Hintertür vorhanden ist.
2 Prävention
1 Fügen Sie dem Programm eine globale SQL-Schlüsselwortfilterung hinzu
2 Aktivieren Sie PHP-Escape-Zeichen für einfache Anführungszeichen (ändern Sie php.ini magic_quotes_gpc).
3 Apache/nginx/iis ermöglichen Dienstprotokolle, MySQL-Protokolle für langsame Abfragen und Programmeintragsdatensatz-Anforderungsprotokolle
4 Der Server installiert Sicherheitssoftware für Webanwendungen wie SafeDog
5 Verwenden Sie UTF-8 für Datenbankverknüpfungen zu Verhindern Sie die doppelte GBK-Byte-Injektion
6 Erhöhen Sie die Komplexität des MySQL-Passworts, verbieten Sie externe MySQL-Links, ändern Sie die Standardportnummer
7 Reduzieren Sie die Rechte des Programm-MySQL-Kontos und gewähren Sie nur normales Hinzufügen, Löschen, Überprüfen und Ändern Berechtigungen. Es ist verboten, Dateioperationsberechtigungen zu erteilen
XSS-Cross-Site-Angriffslösung
1 Verwenden Sie htmlspecialchars, um zu maskieren, wo Text geschrieben wird.
2 Verwenden Sie SSL, um das Laden und Referenzieren externer JS zu verhindern.
3 Stellen Sie httponly ein, um den Erhalt von Cookies zu verhindern.
4 Bereits gepostet Stellen Sie sicher, dass keine Injektion erfolgt (falls vorhanden, können Sie hexadezimal verwenden, um HTML-Spezialzeichen zu umgehen und den Effekt eines XSS-Angriffs zu erzielen).
5 Es ist am besten, zwei Programmsätze mit unterschiedlichen Routing-Regeln für das Backend und das Frontend zu verwenden . Schlüsseloperationen im Backend (Backup-Datenbank) sollten ein sekundäres Passwort festlegen und die Komplexität der Anforderungsparameter erhöhen, um CSRF zu verhindern
PHP-Sicherheit
1 Fügen Sie beim Hochladen von Dateien eine Suffixfilterung hinzu und treffen Sie beim Filtern keine Urteile mit „logischer Negation“.
2 Es ist verboten, Dateien mit den Suffixen php und htaccess hochzuladen. Verwenden Sie nicht die vom Client übermittelten Daten, um das Suffix und den zufälligen Dateinamen hinzuzufügen Einheitliches Routing zur Begrenzung unbefugten Zugriffs
4 PHP-Downgrade-Verarbeitung, das Webverzeichnis schränkt die Erstellung von Ordnern und Text ein (mit Ausnahme der vom Programm benötigten Ordner gibt es normalerweise ein Cache-Verzeichnis, das Schreibberechtigungen erfordert)
5 Filter IIS Schwachstelle beim Parsen von /nginx-Dateien
6 Um das Passwort abzurufen, verwenden Sie den Bestätigungscode des Mobiltelefons. Um das Passwort per E-Mail abzurufen, verwenden Sie einen zusätzlichen Server. (Verhindern Sie, dass die echte IP-Adresse über die Passwort-Abruffunktion abgerufen wird.) Der letzte Link zum Zurücksetzen des Passworts, der an die Mailbox des Benutzers gesendet wird, muss über komplexe Verschlüsselungsparameter verfügen
7 Das Benutzeranmeldesystem sollte über eine Single-Sign-On-Funktion verfügen. Wenn sich der Benutzer angemeldet hat, sollten andere Personen zur Anmeldung aufgefordert werden wieder.
8 Das Webroot-Verzeichnis darf nur eine index.php (Eintragsdatei) für die externe Verteidigung haben. Alle Ressourcendateien (hochgeladen) verfügen in nginx über eine Anti-Hotlink-Funktion
1 Sicherheitskenntnisse
2 Wenn Sie eine integrierte Umgebung verwenden, sollten Sie die PHP-Probe, phpmyadmin, phpinfo (Probe) danach löschen Die Installation ist abgeschlossen. Die Nadel kann Ihren Webpfad überprüfen und phpmyadmin kann ihn mit Brute-Force knacken)
2 Es ist am besten, den MD5-Wert nach dem Passwort-Salting für das Benutzerpasswort zu verwenden
3 Fügen Sie einen Bestätigungscode hinzu Benutzer meldet sich an, wie man eine Begrenzung der Fehleranzahl hinzufügt, um Brute-Force-Cracking zu verhindern
4 Verwenden Sie die CDN-Beschleunigung, um die echte IP zu verbergen
5 Geben Sie beim Anmelden von Benutzern keine Klartext-Kontokennwörter weiter, um C. zu verhindern -seitiges Schnüffeln und Erhalten von Benutzer- und Administrator-Klartext-Kontokennwörtern durch ARP-Spoofing
6 Deaktivieren Sie PHP-Systembefehle. Anzahl der Zeilen exec, system usw.
7 Installieren Sie Sicherheitssoftware wie SafeDog auf dem Server
8 Die Im Webverzeichnis ist das Speichern von .rar- und zip-Dateien verboten