Datensicherheit

Alles, was PHP betrifft, kann hier besprochen werden.

Datensicherheit

Postby Makconner » 30. March 2006 10:34

Folgende Idee...

Ich programmiere ein Tool mit php und richte mir eine Commandozeile ein.. so wie "cmd" unter Dos.. die Befehle hinterlege ich normal im Quellcode so in einer "IF" abfrage ...

ist es möglich von einem User/Hacker außerhalb herauszufinden wie die Befehle sind? Ich arbeite schon eine Weile mit php aber bin mir immer noch nicht sicher wie "SICHER" das php nun ist.
User avatar
Makconner
 
Posts: 153
Joined: 14. February 2006 16:00

Postby KingCrunch » 30. March 2006 12:00

Mach das nich ohne Authentifizierung!
Nicht jeder Fehler ist ein Bug ...
KingCrunch
 
Posts: 1724
Joined: 26. November 2005 19:25

Postby Makconner » 30. March 2006 13:59

Ja ok… kein Thema aber wir kommen noch mal zu der Frage… wie sicher ist der php code.. das man ihn nicht so einfach einsehen kann wie html is klar… aber kann der Hacker mit einem Trick an den Quellcode gelangen?
User avatar
Makconner
 
Posts: 153
Joined: 14. February 2006 16:00

Postby KingCrunch » 30. March 2006 14:11

An den Quellcode meines Wissens nicht, solange es nicht "schwach Passwörter" (ftp, ...) dran Schuld sind, allerdings besteht noch Gefahr, dass die Kommandos "erraten" (beinhaltet auch Brute-Force) werden. Es ist zumindest ungeschützt ein nicht zu kalkulierendes Risiko, was ich nie eingehen würde.
Nicht jeder Fehler ist ein Bug ...
KingCrunch
 
Posts: 1724
Joined: 26. November 2005 19:25

Postby Makconner » 31. March 2006 10:19

Nun ich bin schon eine weile mit php unterwegs und habe sicher viel gelernt, aber denke immer noch das ich zu den Noobs gehöre und demnach von 70% der Möglichkeiten keine Ahnung habe. Demnach vertraue ich meinem Code noch nicht all zu viel an, und habe bedenken das man meien PHP code durch Tricks umgehen kann und so Sicherheitslücken in meinen Tools umgehen kann.

Also… wenn ich durch Name und Passwort (ausgelesen aus mysql-DB) den User gestatte auf die nächste php-Seite zu gelangen… ist es für andere ohne Name und PW nicht möglich.. oder kann man einen einfachen Name/PW vergleich umgehen? Ich habe lang mit HTML gearbeitet und weis das da einfach keine Sicherheit vorherrscht.. alles kann man umgehen… daher bin ich sehr Vorsichtig…
User avatar
Makconner
 
Posts: 153
Joined: 14. February 2006 16:00

Postby KingCrunch » 31. March 2006 15:15

HTML wird auch client-seitig ausgewertet, d.h. dass der Nutzer jederzeit sich den Quelltext anschauen kann. So ist das kein Wunder, das html keinerleit Sicherheiten bietet (zudem ist html sowieso nur ne Auszeichnungssprache). Man sollte sich aber auch bei PHP mit den Gedanken anfreunden, dass es nie 100%ig sicher sein kann. Aber dann sollte man es denjenigen wenigstens möglichst schwer machen ;) Denn: Ob eine Seite gehackt wird, liegt auch teilweise am Verhältnis Aufwand-Nutzen.
Nicht jeder Fehler ist ein Bug ...
KingCrunch
 
Posts: 1724
Joined: 26. November 2005 19:25

Postby thorsin » 01. April 2006 10:55

also es gibt mehrere möglichkeiten....
wenn du befehle, oder teile von befehlen offensichtlich also per get oder post übergibst, dann ist es relativ einfach an den code zu kommen.
rufst du zb ein fopen($datei) über index.php?open=meinfile.txt auf, dann würde man als angreifer jetzt einfach mal index.php?open=index.php aufrufen und so weitermachen bis man alle dateien hat. das ist jetzt mit sicherheit der einfachste weg, aber das prinzip sollte daraus hervorgehen.
dann gibt es da noch die möglichkeit einer "sql injection", will heissen du übergibst irgendwo was an die db ohne es zu prüfen. zb. könnte das so aussehen: du hast eine form, wo der user etwas eintragen kann. die eingegebenen daten prüfst du nicht. nehmen wir mal an du willst den namen registrieren, dann würde ein angreifer versuchen dir in das namensfeld so was in der art: heinz müller;SELECT * FROM geratenerName; probieren, wobei geratenerName zb durch einen in dieser form provozierten fehler anhand der fehlermeldung ersichtlich sein könnte.

letzten endes kann man dir ein klares JEIN als antwort geben. solange der user keine einflußmöglichkeiten auf sql-statements bzw. andere variablen hat ist dein php safe (vorausgesetzt dein apache ist ordentlich konfiguriert und liefert keine php-dateien aus)(tipp an dieser stelle: files die du per require oder include einbindest immer *.inc.php nennen, da manche server *.inc ausliefern und nicht parsen). sobald der user eingabemöglichkeiten hat MUSST du die eingaben irgendwie prüfen...

so far
User avatar
thorsin
 
Posts: 136
Joined: 05. March 2006 20:39


Return to PHP

Who is online

Users browsing this forum: No registered users and 7 guests