php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2007

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 23.04.2007, 10:29  
Erfahrener Benutzer
 
Registriert seit: 08.03.2005
Beiträge: 476
Plague
Standard PHP Sicherheit

Hallo,

ich habe mich gestern mit einem Informatik Studenten unterhalten. Dem habe ich von einem kleinen Projekt von mir erzählt und dass ich dieses mit PHP & MySQL realisiere. Er wollte dann wissen welche Version ich von PHP nutze und meinte dann, dass PHP alles andere als sicher sei.
Stimmt das?
Es soll wohl einen parameter sowie eine dazugehörige Variable geben, mit der man den PHP-Quelltext geliefert bekommt, anstatt den HTML Code.

Stimmt das und wenn ja, wie kann ich generell die Sicherheit mit PHP verbessern?

Gruß
Thomas
Plague ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 23.04.2007, 10:37  
Erfahrener Benutzer
 
Registriert seit: 21.07.2005
Beiträge: 209
pepe24
Standard

Das ist keine Variable, sondern eine Funktion. Und die ist eigentlich nur zu Debugzwecken da, bzw. dazu, Scripte zu präsentieren.
Und das kann nur der programmierer selbst fabrizieren, das geht garantiert nicht über einen zugriff von außen. Für Uralt PHP Versionen kann ich natürlich nicht sprechen, aber SO ein Problem wurde garantiert schon ganz früh ausgeschaltet.
Die typischen Themen, auf die man trotzdem achten sollte:

-SQL-Injection
-XSS (bei Javascript-Einsatz)
-Cookies ggf. verschlüsseln
-Session gegenchecken und gegen übernahme schützen
-register globals = off
-Benutzereingaben prüfen
-aufpassen bei dynamischen/ userdefinierten includes

mehr fällt mir gerade nicht ein.
pepe24 ist offline  
Alt 23.04.2007, 10:41  
Erfahrener Benutzer
 
Registriert seit: 08.03.2005
Beiträge: 476
Plague
Standard

Super - danke für die schnelle antwort.
Aber mal ganz doof gefragt:

-SQL-Injection
Wie geschieht so eine SQL-Injection?

-XSS (bei Javascript-Einsatz)
Bei kleinen "normalen" JavaScript Funktionen sollte das doch kein Problem sein, oder?

-Session gegenchecken und gegen übernahme schützen
Wie kann man Sessions übernehmen bzw. gegenchecken

-aufpassen bei dynamischen/ userdefinierten includes
Dad gib it bei mir nit
Plague ist offline  
Alt 23.04.2007, 10:52  
Erfahrener Benutzer
 
Registriert seit: 13.08.2007
Beiträge: 1.976
KingCrunch befindet sich auf einem aufstrebenden Ast
KingCrunch eine Nachricht über ICQ schicken KingCrunch eine Nachricht über AIM schicken KingCrunch eine Nachricht über MSN schicken KingCrunch eine Nachricht über Yahoo! schicken
Standard

1. Wenn Eingaben von Nutzern ungeprüft in eine SQL-Anweisung übernommen werden. Dann ist es möglich zusätzlich zu den vermeintlich korrekten Daten, die in die Anweisung eingefügt werden soll, weitere Anweisungen anzuhängen, die dann eben auch böse Sachen machen dürfen

3. Indem man ganz banal die Session-ID herausfindet/klaut Das ist etwas, was du als Programmierer schlecht bis garnicht kontrollieren kannst. Gegenchecken würd ich das mit möglichst vielen Möglichkeiten, die dir als "Ausweismerkmale" zur Verfügung stehen. ZB mit der IP, dem User-Agent, etc. Das bringt aber auch gleichzeitig eben auch Nachteile mit.

Würde so als Fazit behaupten, dass PHP genauso sicher oder unsicher ist wie jede andere Programmiersprache auch. Sie ist allerdings, weil sie eine Sprache für Websites ist, ständig im Kreuzfeuer diverser Angriffe
__________________
Nicht jeder Fehler ist ein Bug.
KingCrunch ist offline  
Alt 23.04.2007, 11:11  
Erfahrener Benutzer
 
Registriert seit: 08.03.2005
Beiträge: 476
Plague
Standard

wie kann man denn eine Session ID klauen?
Plague ist offline  
Alt 23.04.2007, 11:24  
Erfahrener Benutzer
 
Registriert seit: 13.08.2007
Beiträge: 1.976
KingCrunch befindet sich auf einem aufstrebenden Ast
KingCrunch eine Nachricht über ICQ schicken KingCrunch eine Nachricht über AIM schicken KingCrunch eine Nachricht über MSN schicken KingCrunch eine Nachricht über Yahoo! schicken
Standard

Zum Beispiel: Diese Seite (ich hab sie grad per Google gefunden, also klaut mir die Session ruhig, habt ihr nix von ) hat die SID direkt im Link. Schicke ich nun als unachtsamer Nutzer diesen Link so wie er ist, an einen Freund, surft dieser auf eben dieser Seite mit meiner SID, vorrausgesetzt die Seite prüft die Authenzität nicht noch selber.
Andere Seiten (wie dieses Forum hier) setzen die SID in Cookies. Die kann man sich aber auch sehr leicht mal kopieren, wenn man schon mal dran sitzt, oder unterwegs irgendwo abfangen. Ist aber schon auffällig schwieriger, als der Diebstahl per URL, insofern schon ein Schritt in die richtige Richtung.
Es gibt ne Menge Möglichkeiten, aber alle haben eines gemeinsam: Ein böser Bub kennt deine SID. Mehr braucht man dazu nicht

Fakt ist (das ist eine Aussage meines alten Informatik-Lehrers): Alle Daten, die von aussen kommen, sind erstmal böse, nicht vertrauenswürdig und müssen geprüft werden! Dieser Merksatz gilt aber nicht nur für PHP, sondern eigentlich für alle Programme/Programmiersprachen, bei denen am Schluss 2 oder mehr Systeme miteinander kommunizieren.
__________________
Nicht jeder Fehler ist ein Bug.
KingCrunch ist offline  
Alt 23.04.2007, 11:37  
Erfahrener Benutzer
 
Registriert seit: 08.03.2005
Beiträge: 476
Plague
Standard

Ich übergebe meine Sessions aber nicht über URL.
Ich mache das über die $_SESSION['name'] Funktionen...
Sind die auch unsicher?
Plague ist offline  
Alt 23.04.2007, 11:48  
Erfahrener Benutzer
 
Registriert seit: 13.08.2007
Beiträge: 1.976
KingCrunch befindet sich auf einem aufstrebenden Ast
KingCrunch eine Nachricht über ICQ schicken KingCrunch eine Nachricht über AIM schicken KingCrunch eine Nachricht über MSN schicken KingCrunch eine Nachricht über Yahoo! schicken
Standard

*hust* Das sind Äpfel und Birnen! ^^
Also, wie funktioniert eigentlich eine Session? Wenn man eine Session startet, dann richtet PHP einen persistenten Speicherbereich ein (üblicherweise eine Datei), in dem es die ganzen Daten ablegt. Zu eben dieser Datei generiert er eine ID, die er dem Nutzer übergibt. Wenn der Nutzer nun auf den nächsten Link klickt, übergibt er wieder die ID zurück an PHP, der anhand dieses den passenden Speicher findet und die Daten in die $_SESSION-Variable verteilt.
PHP brauch also auf jeden Fall irgendeinen Anhaltspunkt, damit er weiß "Aha, Daten x gehören also zu User y". Diesen Anhaltspunkt kann er selbst nicht liefern, weil alles, was er selbst vom Nutzer weiß, zu veränderlich sind, als das man sich darauf verlassen kann. Bleibt nur noch eine eindeutige Kennung und das ist eben die ID.

Mal anschaulich: Stell dir vor, du gehst in ein Atomkraftwerk. Dort werden am Anfang deine Daten entgegen genommen (Name, Geburtstag, ..) und du bekommst ein kleines Anhängeschild mit Barcode. Jetzt begegnet dich ein Sicherheitsmann und scannt dein Barcode. Aha, das bist also du! Jetzt stell dir vor, jemand klaut dir dein Anhängeschild, legt es unter den Kopierer und gibt es dir wieder zurück. Du bekommst davon natürlich garnix mit Und nun sprengt er das Atomkraftwerk. Tja, hinterher findet man dein Anhängeschild lustig verstrahlt mitten neben der Bombe, also musst du der Angreifer wohl gewesen sein
__________________
Nicht jeder Fehler ist ein Bug.
KingCrunch ist offline  
Alt 23.04.2007, 21:03  
Erfahrener Benutzer
 
Registriert seit: 11.01.2005
Beiträge: 106
MerlinderZauberer ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Hallo Plague,

zu diesem Thema gibt es sehr gute Literatur, die sich auch in meinem Besitz befindet.

Dort werden solche Probleme in Beispielen abgehandelt und mögliche Gefahren aufgezeigt. Am Ende jedes Kapitel gibt es einen Lösungsvorschlag, um solche Probleme zumindest ansatzweise zu unterbinden.

Ich denke mal, gegen große kriminelle Energien hat man keine 100% Chance.

Ich selber habe übrigens mit Hilfe des Buches eine Menge Sicherheitslücken gestopft. Man glaubt nicht, welche Möglichkeiten es gibt, eine Website zu "Knacken".

Titel: PHP_Sicherheit
Autoren: Christopher Kunz, Peter Prochaska
Verlag: dpunkt.verlag
ISBN: 3-89864-369-7

Gruß

Merlin der Zauberer
__________________
www.Sternenwelt.net - Astronomie im Internet -
www.SternenweltForum.net - Antworten rund um die Astronomie -
MerlinderZauberer ist offline  
Alt 23.04.2007, 21:17  
da schreibt der ElePHPant
 
Benutzerbild von Flor1an
 
Registriert seit: 18.06.2008
Beiträge: 8.903
PHP-Kenntnisse:
Fortgeschritten
Flor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer Anblick
Standard

zu deinem 2. Punkt: Es geht nicht um die JS Funktionen die du selber in die Page einbaust sondern darum dass wenn du z.B. ein Textfeld (Gästebuchtext) in der DB speicherst ohne davor/danach den Text zu überprüfen ... dann kann ein User in den Text einfach einen JS-Skript reinschrieben. Wird der Eintrag ausgelesen und einem anderen User angezeigt wird dieses Skript ausgeführt und kann z.b. zu Sessionklau führen. Bzw. Phishing wäre da auch ein Begriff.
Flor1an ist offline  
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
BACKLINK CHECK und SICHERHEIT von zentraler CSV-Datei ff-webdesigner.de PHP-Fortgeschrittene 16 27.11.2008 20:25
Sicherheit in PHP robydog PHP Tipps 2008 52 10.05.2008 13:09
externe MySQL und Sicherheit sportyflo Datenbanken 2 22.02.2008 11:09
FON und die WiFi Ads - Bald mehr Sicherheit PHP Tipps 2007 0 03.08.2007 12:06
PHP Sicherheit phpdummi PHP Tipps 2006 1 27.09.2006 23:31
Erfahrung mit Sessions ( Sicherheit ) GELight PHP Tipps 2006 6 11.08.2006 17:55
Sicherheit... GELight PHP Tipps 2006 5 31.01.2006 15:58
Sicherheit aufm Webserver ? Cyberbob_at_tot Off-Topic Diskussionen 7 17.10.2005 16:22
Sicherheit im Web-Interface nussbaum PHP Tipps 2005-2 9 29.06.2005 14:10
Sicherheit.... renzo PHP Tipps 2005-2 1 27.06.2005 15:53
Sicherheit von Klartext-Passwörtern PHP Tipps 2005 14 30.03.2005 15:22
[Erledigt] Thema Sicherheit? PHP-Fortgeschrittene 5 05.11.2004 05:43
Sicherheit bei Wertübergaben PHP Tipps 2004 3 14.10.2004 18:06
Apache öffentlich machen. Sicherheit? Server, Hosting und Workstations 3 07.07.2004 03:20
Sicherheit bei URL-Übergabe pcschröda PHP-Fortgeschrittene 25 28.06.2004 16:44

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
discolivingroomit virus, sicherheit von php quelltext, titel: php_sicherheit, virus discolivingroom, r57shell apache, discolivingroomit, discolivingroom.it php virus, titel: php_sicherheit autoren: christopher kunz, peter prochaska verlag: dpunkt.verlag isbn: 3-89864-369-7, virenscan datei gefunden \r57shell\

Alle Zeitangaben in WEZ +2. Es ist jetzt 16:27 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.