So verbessern Sie die Sicherheit einer Website (xss pHp)

Die Entwicklung einer Website setzt voraus, dass der Programmierer über Sicherheit nachdenkt, nicht nur über einen sicheren Server, sondern auch über Strategien, die zum Schutz des Webs beitragen können. In diesem Tutorial wird PHP für die Beispiele verwendet, aber sie können an andere Programmiersprachen angepasst werden.

Verwenden Sie Sitzungsvariablen und keine Cookies

Ein Fehler, den viele Entwickler machen, ist die Verwendung von Cookies , kleinen Textdateien, in denen Informationen über unsere Internetaufgaben, den Zugriff usw. gespeichert sind.

Diese Cookies können leicht von jedem Browser gelesen werden, zum Beispiel in Firefox mit Firebug oder in Chrome mit der rechten Maustaste, dann gehen wir zum Menü Inspect Element.

xss_php_solvetic.jpg

Im Bild sehen wir ein Beispiel, wie der Programmierer ein Cookie für die Benutzeranmeldung erstellt und die Zugangsdaten öffentlich zugänglich macht.

Das nächste Bild ist ein weiteres schlechtestes Beispiel dafür, dass Google die Zugriffe mit Benutzern und Passwörtern indiziert hat.

xss_php_solvetic2.jpg

Das Richtige ist, Sitzungen zu verwenden, in denen die Daten codiert sind.

 <? session_start (); $ _SESSION ['key'] = "key"; $ _SESSION ['user'] = "usu"; ?> 

Dies würde wie die verschlüsselte Sitzungsvariable aussehen, viel sicherer, weil es schwer zu lesen ist:

phpsessid = sb85p15841p6l1dfg7oo8hlsc85;

Dann überprüfen wir auf jedem Bildschirm die Sitzung auf jeder Seite, die wir öffnen, und gehen davon aus, dass es sich um einen eingeschränkten Bereich handelt.

 [size = 4] <? session_start (); if ($ _SESSION ['user'] = "usu") { Echo 'Ich bin immer noch im Web'; } else { echo 'ist nicht angemeldet'; } ?> [/ size] 

Sitzungen sind keine vollständige Lösung, da Session-Hijacking eine andere Hacking-Methode ist . Dies passiert, wenn ein Angreifer den Wert der Sitzung liest und dann versucht, von einem anderen Computer aus darauf zuzugreifen.

Um dies zu vermeiden, können Sitzungen erstellt werden, in denen die Daten des Teams gespeichert werden, in dem sich der Benutzer anmeldet.
 <? session_start (); $ _SESSION ['REMOTE_ADDR'] = $ _SERVER ['REMOTE_ADDR']; $ _SESSION ['HTTP_USER_AGENT'] = $ _SERVER ['HTTP_USER_AGENT']; ?> 

Mit dem vorherigen Code erstellen wir eine Sitzung, in der die IP-Adresse und der Browser, von dem aus auf das Web zugegriffen wurde, gespeichert werden. Anschließend prüfen wir, ob während der aktiven Sitzung jemand versucht, sich von einer anderen IP-Adresse aus anzumelden, oder ob ein anderer Browser nicht auf das Web zugreifen kann

 [size = 4] <? session_start (); if ($ _ SESSION ['REMOTE_ADDR']! = $ _SERVER ['REMOTE_ADDR'] || $ _SESSION ['HTTP_USER_AGENT']! = $ _SERVER ['HTTP_USER_AGENT']) { exit (); }?> [/ size] 

So ähnlich verhält es sich bei Facebook , wenn Sie von einem anderen Gerät oder einer anderen IP-Adresse in einer anderen Stadt aus zugreifen, da es weiterhin schützt, von wo aus Sie häufig zugreifen.

Testen von XSS- und SQL-Injection-Fällen

Eine Möglichkeit, gefährdete Websites zu finden, besteht darin, die Suchmaschine info_page.php = oder catalogo.php = einzutragen

See also  So installieren Sie FreeBSD 11.1 unter Linux

xss_php_solvetic3.jpg
Dies gibt uns eine Liste der anfälligen Websites. Alle Websites, die mit .php? Variable = enden, können anfällig sein.

: Um zu testen, ob es anfällig ist, schreiben Sie die URL ohne Wert in die Beispielvariable :

midominio.com/info_page.php?id=

Wenn das Web anfällig ist, antwortet es mit einem MySQL-Fehler, der wie folgt lautet:

Sie haben einen Fehler in Ihrer SQL-Syntax. In dem Handbuch, das Ihrer MySQL-Serverversion entspricht, finden Sie die richtige Syntax für “near” in Zeile 1

: Wenn wir eine Domain mit dieser Sicherheitsanfälligkeit finden, können wir versuchen, festzustellen, ob wir die Benutzer- oder Administratortabelle finden und wie viele Spalten sie enthält :

www.mydomain.com/info_page.php? id = -1 + union + all + select + 1,2,3, group_concat (user_name, 0x3a,

password),5+from+administrators user_ password), 5 + von + Administratoren

In diesem Fall werden der Schlüssel und der Benutzeradministrator zurückgegeben. Um eine SQL-Verletzung zu vermeiden, ist es erforderlich, Sitzung und nicht Parameter per URL zu verwenden, wenn die Parameter mit einer Funktion oder Klasse bereinigt werden sollen, die überprüft, dass der Parameter keine SQL-Befehle oder Javascript enthält die per formular oder per url gesendet wird.

administrator

Leave a Reply

Your email address will not be published. Required fields are marked *