|
|
| |
| |
Hallo und herzlich willkommen! Tutorials.de ist eine Hilfe-Community mit dem Motto User helfen Usern. Als Gast verfügst Du über Schreibrechte in unseren Foren und Blogs. Du kannst dich aber gerne auch kostenlos registrieren und Teil unserer Gemeinschaft werden! Viel Spaß & Erfolg bei der Vermehrung deines Wissens :-)
|
|
|
 |
|
|
|
|
|
|
05.04.06, 17:01
|
#1 (permalink)
|
|
mod | reptiler
Registriert seit: Apr 2002
Ort: Hong Kong
Beiträge: 12.415
|
Sicherheit in PHP
Wofuer ist dieser Thread gedacht: - Sicherheitstipps
Also Links zum Thema eigene Ideen, Erfahrungen mit bestimmten Methoden, etc.
- Diskussion ueber eben diese Tipps
Es kann ja durchaus mal sein, dass hier jemand Kaese postet der sich nicht als sicher herausstellt.
- Beispiele
Damit meine ich z.B. ein Beispiel der Art "So sieht's haeufig aus - und so sollte es aussehen".
Wofuer ist dieser Thread nicht gedacht: - Fragen ob ein Script sicher ist
Wir wollen hier eher allgemein zum Thema Sicherheit in PHP diskutieren und nicht auf spezielle Scripts eingehen. Natuerlich wollen wir hier auch Code-Beispiele sehen, aber eben nicht, dass jemand sein Script (oder einen Ausschnitt) postet und fragt ob der Code sicher ist.
Auch wenn es mir absolut widerstrebt, in diesem Thread sind zum Teil "schlimme Codes" (z.B. fopen() mit URLs) erlaubt. Hier wollen wir dafuer sorgen, dass diese sicher funktionieren, auch wenn sie nicht ueberall funktionieren weil in der php.ini bestimmte Einstellungen vorgenommen werden koennen.
Wir muessen hier im Grunde von der schlechtmoeglichsten PHP-Konfiguration ausgehen und darauf aufbauen.
Falls sich hier Tipps als absolut untauglich herausstellen werden diese entweder entsprechend markiert oder unter Umstaenden auch entfernt.
Links duerfen sowohl auf deutsche als auch auf englische Texte verweisen.
Hinweise/Aenderungsvorschlaege zu diesem Post bitte per PN an mich.
__________________
PHP Class Collection - PHP-Klassen fuer PHP 5 (und Teilweise auch fuer PHP 4)
Updates: Catcher 1.1, FTPConnection 1.2, MultiSQL 1.1, RSS2 1.1, SMTPConnection 1.4
__________________
EasyLFS - Hintergrundinformationen, Installationsanleitung, Softwareliste und Download
EasyLFS Projektthread - Informationen, Status und Diskussion zu meiner Linux-Distribution
__________________
Zitat:
|
Ich bin die Schildkroete, mein Sohn. Ich habe das Universum erschaffen, aber bitte mach mir daraus keinen Vorwurf; ich hatte Bauchschmerzen.
|
__________________
Zitat:
|
Zitat von Friedrich Nietzsche
Man muss noch Chaos in sich haben, um einen tanzenden Stern gebaeren zu koennen.
|
|
05.04.06, 17:03
|
#2 (permalink)
|
|
mod | reptiler
Registriert seit: Apr 2002
Ort: Hong Kong
Beiträge: 12.415
|
AW: Sicherheit in PHP
So, nun mal zum Thema. Vor einer Weile wurden in einem Thread schonmal ein paar Links zum Thema PHP & Security gepostet. Diese habe ich mir natuerlich erstmal alle in die Bookmark-Liste eingenaeht und werde jetzt somit einfach mal richtig gut einen ablassen... 
Wenn ich mich recht erinnere wurde ein nicht unbetraechtlicher Teil dieser Links "damals" (naja, so lang ist's eigentlich noch garnicht her) von Gumbo und SilentWarrior gepostet, und halt auch ein paar von mir. Falls ich bei meiner Dankesrede (ja, ich akzeptiere den Oscar fuer das mieseste Stummfilm-Drehbuch aller Zeiten  ) noch jemanden vergessen haben sollte, bitte hier beschweren oder fuer immer schweigen (Amen).
So, los geht's...
Writing Secure PHP - Part 1
Writing Secure PHP - Part 2
Writing Secure PHP - Part 3
Web Application Security
Learn PHP - Part 4 - Security
Top7 PHP Security Blunders
PHP Foundations
Und dann gibt's natuerlich noch den Abschnitt ueber Security in der PHP-Doku
__________________
PHP Class Collection - PHP-Klassen fuer PHP 5 (und Teilweise auch fuer PHP 4)
Updates: Catcher 1.1, FTPConnection 1.2, MultiSQL 1.1, RSS2 1.1, SMTPConnection 1.4
__________________
EasyLFS - Hintergrundinformationen, Installationsanleitung, Softwareliste und Download
EasyLFS Projektthread - Informationen, Status und Diskussion zu meiner Linux-Distribution
__________________
Zitat:
|
Ich bin die Schildkroete, mein Sohn. Ich habe das Universum erschaffen, aber bitte mach mir daraus keinen Vorwurf; ich hatte Bauchschmerzen.
|
__________________
Zitat:
|
Zitat von Friedrich Nietzsche
Man muss noch Chaos in sich haben, um einen tanzenden Stern gebaeren zu koennen.
|
|
17.04.06, 13:00
|
#3 (permalink)
|
|
Mitglied Bronze
Registriert seit: Jun 2005
Beiträge: 45
Renommee-Modifikator: 10
|
AW: Sicherheit in PHP
Würde es auch noch was Deutsches geben?
Nicht das ich kein Englisch kann, aber Deutsch ist einfach angenehmer 
|
29.04.06, 22:00
|
#4 (permalink)
|
|
Mitglied Platin
Registriert seit: Aug 2005
Beiträge: 656
Renommee-Modifikator: 12
|
AW: Sicherheit in PHP
Man könnte ja auch eine speziell auf Sicherheit ausgelegte php.ini hier posten.
__________________
Just because you're paranoid, don't mean they're not after you.
Kurt Cobain
Experiment: Kohlkopf
|
05.06.06, 16:57
|
#5 (permalink)
|
|
Mitglied Platin
Registriert seit: Nov 2002
Ort: Mannheim
Beiträge: 549
Renommee-Modifikator: 17
|
Re: Sicherheit in PHP
__________________
Zitat:
|
Zitat von Benjamin Franklin
Eine Gesellschaft die Freiheit zugunsten der Sicherheit opfert hat beides nicht verdient
|
Kohlkopf
-------------------------------------------------------------------------------------------
.:Mitglied und offizieller Erdbeerenpflanzer des 1. offiziellen Sven Uwe Fan-Clubs:.
|
05.06.06, 17:02
|
#6 (permalink)
|
|
mod | reptiler
Registriert seit: Apr 2002
Ort: Hong Kong
Beiträge: 12.415
|
AW: Re: Sicherheit in PHP
Richtig, leider nur fuer Leute mit Root-Server oder PHP daheim. Im Internet wird man dies wohl leider noch nicht so haeufig antreffen.
__________________
PHP Class Collection - PHP-Klassen fuer PHP 5 (und Teilweise auch fuer PHP 4)
Updates: Catcher 1.1, FTPConnection 1.2, MultiSQL 1.1, RSS2 1.1, SMTPConnection 1.4
__________________
EasyLFS - Hintergrundinformationen, Installationsanleitung, Softwareliste und Download
EasyLFS Projektthread - Informationen, Status und Diskussion zu meiner Linux-Distribution
__________________
Zitat:
|
Ich bin die Schildkroete, mein Sohn. Ich habe das Universum erschaffen, aber bitte mach mir daraus keinen Vorwurf; ich hatte Bauchschmerzen.
|
__________________
Zitat:
|
Zitat von Friedrich Nietzsche
Man muss noch Chaos in sich haben, um einen tanzenden Stern gebaeren zu koennen.
|
|
12.06.06, 22:40
|
#7 (permalink)
|
Registriert seit: Mar 2001
Ort: München
Beiträge: 4.847
Renommee-Modifikator: 38
|
AW: Sicherheit in PHP
Sicherheit allgemeint (nicht nur auf PHP bezogen):
a) Daten sind fies und wollen dich aufs Kreuz legen
Sämtliche Daten wollen geprüft werden. Und nicht nur jene die direkt vom Benutzer kommen. Denn auch andere Komponenten wie Datenbanken (oder die Daten darin) können kompromitiert werden und dir Lücken in das System reissen.
b) Sauberer lesbarer Programmcode hilft ungemein
Code der superkryptisch ist und mit dem man selbst gestandene Perl entwickler zur Verzweiflung bringt sind witzig und macht spass zu entwickeln. In einem Projekt das aber nicht nur zur Belustigung dient haben solche Codeteile nichts zu suchen.
Halte deinen Code einfach - verständlich und überschaubarer. Denn nur dann hast du die Möglichkeiten eventuelle Sicherheitsmängel zu entdecken.
c) Nimm dir Zeit Dinge nachzulesen.
Oft les ich das im Forum: "mach chmod 777 datei, dann funktioniert dein Code". Und jenen die solchen Rat geben gehöhrt das 5kg Unix Handbuch um die Ohren geschlagen.
RTFM (Read the *fine* manual) ist nicht immer ein schneller Rat um jemand abzuwimmeln. Manchmal ist das der einzig richtige Rat. Und in diesem Beispiel bedeutet es auch das der PHP (Perl,Python, wasweissich) Programmierer der seine Werke auf Unix/Linux laufen sehen will sich damit auseinandersetzen muss.
Gerade ein PHP Programmierer sollte dies tun, da PHP sehr stark mit Apache und Apache mit Linux/Unix verheiratet ist.
Aber nicht nur das Betriebssystem will verstanden werden. Auch Funktionen / Klassen. Und damit ist nicht nur wichtig was die Funktion offensichtlich macht. Sondern auch was eine Funktion nicht macht.
Sprich was gibt die Funktion zurück wenn etwas nicht klappt (was macht meine UrlConnection Funktion wenn der Host nicht erreichbar ist).
Nur wenn mann mögliche Probleme kennt kann mann diese behandeln und berücksichtigen.
d) Rechne immer mit dem schlimsten
Datenbanken sind nicht immer erreichbar. Die Festplatte ist sogar bei einem Hoster wenn was schiefgeht voll. Andere Programme auf dem Server können sich mal eben 99,99% Rechenzeit schnappen (Nicht nur Du und ich machen Fehler). Was ist denn aber wenn der Kunde in meinem Onlineshop seine Ware bestellt hat, der automatische Abbuchungsvorgang schon gestartet hat aber kurz bevor die Bestellungsdaten der Versandabteilung zur Verfügung gestellt wird der Server abstürzt?
Rechne auch damit, auch wenn es wohl nicht passieren wird, kann es dennoch passieren.
e) Logging ist nicht nervig sondern wichtig
Naja ok nervig ists zwar auch, was aber die Wichtigkeit nicht einschränkt. Ich nehm Bezug auf mein Beispiel Onlineshop von d).
Der dort geschilderten Fehler wird mann nicht finden. Ausser mann hat ein sauberes Logging implementiert.
Wenn sich ein Benutzer mit falschem Passwort anmeldet, muss das geloggt werden. Wenn jemand sein Passwort ändert muss das mitgeloggt werden (aber hey, dem Benutzer sein Passwort gehöhrt nicht in Klartext ins Logfile  ).
Nicht erreichbare Verbindungen zu Gott und die Welt müssen geloggt werden.
f) Trau dich auch mal 2-3 Tage wegzuwerfen
Ich programmiere seid vielen Jahren, und dennoch produziere ich mal wieder Code der den Anforderungen nicht gerecht wird. Entweder Fremdverschulden (unklare Anforderrungen seitens der Kunden, Projektmanager) oder aber weil mann Dinge nicht richtig aufgefasst hat, oder aber mal schlechte Tage hatte und unkonzentriert war.
Auch Programmierer sind Menschen und machen Fehler. Wenn uns auffällt das wir einen gemacht haben sollten wir Mann (und Frau ) genug sein auch mal damit zu leben grössere Codeteile komplett neu zu schreiben.
Der falsche Weg ist wenn mann mit Biegen und Brechen am Code rumfrickelt um den so anzupassen das er irgendwie doch funktioniert.
Denn in diesem Moment ist der Code: schwer wartbar und instabil.
Das sind Eigenschaften die Sicherheitslücken hervorrufen.
g) Programmiere nach den Anforderrungen und nicht nach den persöhnlichen Vorlieben
Es gibt für Programmierer nichts schöneres als die neuste Bleeding Edge Technologie auszuprobieren. Was Pre Alpha Version 0.14? Ach egal läuft - *Finger auf die Tastartur hau*
Ich mach das auch gern. In einem Projekt das aber die eigenen 4 Wände verlässt hat es nichts zu suchen wenn es auch andere Technologien gibt die die Anforderrungen gleichwertig erfüllen und dabei auch schon eine stabile Version und allgemeine Freigabe haben.
h) Stabil = sicherer, Unstabil = unsicherer
Eigentlich nochmal eine Wiederholung dessen was ich in den Punkten zuvor gepredigt habe. Systeme sind wackelig, berücksichtige es. Nur ein stabiler Code der alle Probleme die erkennbar sein können berücksichtig kann sicherer Code werden.
i) Planungen und Diagramme sind schön, aber sie sind nicht in Stein gemeisselt
Anforderrungen ändern sich. Planungen waren zu abstrakt und stellen sich falsch heraus.
Eine sauberes UML Diagramm lebt nicht davon alles und jedes im Vorneherein bedacht zu haben (das ist geradezu unmöglich, denn die Anforderrungen ändern sich nur zu gern), sondern es lebt von der Kommunikation der beteiligten Personen. Jenen die diese Diagramme aufsetzen und jenen die sie umsetzen.
Denn auch hier gilt: Setzt mann Planungen um die sich als nicht optimal heraustellen dann frickelt mann auch hier im Code herum nur um quadratisch gezeichnete Vorgaben
einzuhalten. Es resultiert: schlecht wartbarer und unstabiler Code.
j) Informier dich über Sicherheitslücken
Nicht nur das Offensichtliche (der PHP Interpreter) sondern auch weniger offensichtliche Sicherheitslücken ( IIS, Apache, Datenbank, Netzwerkdienste und weiss der Geier was noch) sind vom Interesse.
Lese auch über Ratschläge anderer betreffend Dinge die zu beachten sind bei der programmierung in der Sprache XYZ
k) ...und handel dementsprechen
Lücke PHP Interpreter? Updaten auch wenn das bedeutet das mann viel Arbeit hat um seinen Code an die neue Version anzupassen.
Der Rat Register Globals = off? Ein guter Rat der oft Arbeit nach sich zieht. Arbeit die unbeliebt ist denn nach aussen hin entwickelt sich das Projekt nicht weiter, aber der Sicherheit will genüge getan werden.
l) Lerne!
Ich bin immer am lernen. Auch wenn in meinem Profil Senior Entwickler steht heisst das noch lange nicht das ich mich auf die faule Haut legen kann.
Schau über den Tellerrand, selbst wenn das bedeutet sich mit dem "Feind" einzulassen.
So sollte jeder Java Programmierer sich auch .net anschaun, aber auch Python vielleicht Smalltalk oder gar Lisp.
Ein PHP Programmierer sollte sich auch C++ anschauen, mal anstatt MySQL einmal PostgreSQL nutzen oder gar Ruby lernen.
Was hat das mit Sicherheit zu tun? Eine ganze Menge. Mann lernt wie andere Technologien mit jenen Problemen wie Stabilität umgehen bzw können andere Sprachen auch im Umgang mit der eigenen Sprache viel beibringen.
So kann die erfahrung checked exceptions (das gezwungende Ausnahmen behandeln in Java ) den PHP Programmierer hellfen in seinem PHP Code an die Exceptions zu denken. Eine stabile Art der Programmierung auch ohne zwang vom Compiler auf seine Sprache zu transferieren.
m) ein bischen Paranoia schadet nie 
lass ich mal unkommentiert stehen.
__________________
Erst wenn der letzte Programmierer eingesperrt...
...und die letzte Idee patentiert ist, werdet ihr merken, dass Anwälte nicht programmieren können.
-------------------
chris: hey Tom hast du eigentlich ne Freundin
jdar: ich bin tutorials.de Mod!
|
13.06.06, 03:13
|
#8 (permalink)
|
|
mod | reptiler
Registriert seit: Apr 2002
Ort: Hong Kong
Beiträge: 12.415
|
AW: Sicherheit in PHP
Sehr guter Beitrag Chris. 
Ich hoffe einige User werden ihn aufmerksam lesen und sich auch an Deine Ratschlaege halten.
__________________
PHP Class Collection - PHP-Klassen fuer PHP 5 (und Teilweise auch fuer PHP 4)
Updates: Catcher 1.1, FTPConnection 1.2, MultiSQL 1.1, RSS2 1.1, SMTPConnection 1.4
__________________
EasyLFS - Hintergrundinformationen, Installationsanleitung, Softwareliste und Download
EasyLFS Projektthread - Informationen, Status und Diskussion zu meiner Linux-Distribution
__________________
Zitat:
|
Ich bin die Schildkroete, mein Sohn. Ich habe das Universum erschaffen, aber bitte mach mir daraus keinen Vorwurf; ich hatte Bauchschmerzen.
|
__________________
Zitat:
|
Zitat von Friedrich Nietzsche
Man muss noch Chaos in sich haben, um einen tanzenden Stern gebaeren zu koennen.
|
|
17.06.06, 19:37
|
#9 (permalink)
|
|
Mitglied Silber
Registriert seit: Dec 2003
Ort: Düsseldorf
Beiträge: 58
Renommee-Modifikator: 13
|
AW: Sicherheit in PHP
Ich habe nach dem Reinstall meines Servers mich dafür entschieden, suPHP zu installieren, das sicherstellt, dass ein Skript mit den Rechten den Users ausgeführt wird (optional auch mit chroot).
__________________
DeltaTeam-Design.de v2
<->
http://www.tutorials.de/tutorials128581.html
http://tut.php-q.net
http://www.schattenbaum.net/php/
http://www.dclp-faq.de
<->
|
20.06.06, 06:16
|
#10 (permalink)
|
|
mod | reptiler
Registriert seit: Apr 2002
Ort: Hong Kong
Beiträge: 12.415
|
AW: Sicherheit in PHP
suPHP ist auch eine nette Sache.
Ich wuerd mir wirklich wuenschen wenn Hoster es mal auf die Reihe kriegen wuerden suPHP und moeglichst auch HardenedPHP einzusetzen.
Ich hab heute auch mal wieder was, und zwar wieder was englisches:
PHP and the OWASP Top Ten Security Vulnerabilities
__________________
PHP Class Collection - PHP-Klassen fuer PHP 5 (und Teilweise auch fuer PHP 4)
Updates: Catcher 1.1, FTPConnection 1.2, MultiSQL 1.1, RSS2 1.1, SMTPConnection 1.4
__________________
EasyLFS - Hintergrundinformationen, Installationsanleitung, Softwareliste und Download
EasyLFS Projektthread - Informationen, Status und Diskussion zu meiner Linux-Distribution
__________________
Zitat:
|
Ich bin die Schildkroete, mein Sohn. Ich habe das Universum erschaffen, aber bitte mach mir daraus keinen Vorwurf; ich hatte Bauchschmerzen.
|
__________________
Zitat:
|
Zitat von Friedrich Nietzsche
Man muss noch Chaos in sich haben, um einen tanzenden Stern gebaeren zu koennen.
|
|
03.07.06, 07:50
|
#11 (permalink)
|
|
mod | reptiler
Registriert seit: Apr 2002
Ort: Hong Kong
Beiträge: 12.415
|
AW: Sicherheit in PHP
So, und wieder was neues und englisches. 
Diesmal eine kleine Flash-Praesentation mit netten Beispielen zu haeufigen Sicherheitsluecken und Tipps wie diese behoben werden koennen.
PHP Security by Example
__________________
PHP Class Collection - PHP-Klassen fuer PHP 5 (und Teilweise auch fuer PHP 4)
Updates: Catcher 1.1, FTPConnection 1.2, MultiSQL 1.1, RSS2 1.1, SMTPConnection 1.4
__________________
EasyLFS - Hintergrundinformationen, Installationsanleitung, Softwareliste und Download
EasyLFS Projektthread - Informationen, Status und Diskussion zu meiner Linux-Distribution
__________________
Zitat:
|
Ich bin die Schildkroete, mein Sohn. Ich habe das Universum erschaffen, aber bitte mach mir daraus keinen Vorwurf; ich hatte Bauchschmerzen.
|
__________________
Zitat:
|
Zitat von Friedrich Nietzsche
Man muss noch Chaos in sich haben, um einen tanzenden Stern gebaeren zu koennen.
|
|
05.07.06, 18:05
|
#12 (permalink)
|
|
Mitglied Brokat
Registriert seit: Nov 2003
Beiträge: 464
Renommee-Modifikator: 14
|
AW: Sicherheit in PHP
Das PHP Security Consortium hat noch einige gute Aspekte. Ich habe jetzt noch nicht alles durchgelesen. Aber das was ich fand hat mir mal gut gefallen. Es gibt die Texte als PDF und in HTML und in verschiedenen Sprachen. Leider nicht auf Deutsch.
PHP Security Consortium: Projects
MFG
X
__________________
Es gibt ein leben vor dem Tod
|
14.07.06, 23:39
|
#13 (permalink)
|
|
Tutorials.de Gastzugang
|
AW: Sicherheit in PHP
Hallo Liebe User / Mods und Admins
Ich möchte zu diesem Tehma auch Stellung nehmen. Denn ich sehe es ganz anders, soll aber nicht als widerständig aufgenommen werden.
Wie der Titel des Themas predigt „Sicherheit in PHP“ kann es nie und nimmer geben. Und das wird es auch nie geben! Und man kann es auch nicht durch Aufmerksamkeit oder Achtsamkeit verhindern. Man kann es nur beschränken!
Der Hase liegt ganz wo anders begraben. Und das weis jeder für sich, der nur 3 Zeilen Code und sich schon mal ein Virus eingefangen hat. Man schreibt dem unerfahrenen Volk vor, sein PC ständig upzudaten, Firewall und Antivirus zu betreiben, E-Mailanhänge bestens nicht zu öffnen und noch vieles mehr, um Sicherheit zu erlangen, die es nie gibt und auch nie geben wird.
Ich lese immer wieder von Diplom getitelten Menschen (hoch gebildet) dass der PC mit Internetanbindung zur Sicherheit gebracht werden kann. Ich frage mich immer wieder, wie Menschen mit solcher Erfahrung so was behaupten können? Selbst eine bekannte Computerzeitschrift Titelt auf der Startseite Antivir 2006 erkennt 100% der Viren! ? Ich soll also 5 Jahre Betriebsysteme studieren, PHP im Modul selbst studieren, weis sonst noch was, um sicher 3 Zeilen Code zu tippen? Schöne Welt aber so ist sie. Und trotzdem gibt es Tools die Passwörter angeblich sicher aufbewahren können, sie jedoch wieder ausgeben können. Das Volk wird wieder vergackeiert.
Jedes Passwort hat auf einem PC nichts verloren. Denn alles was wieder ausgegeben wird, kann auch ausgenutzt werden. Nur wie soll das funktionieren, wenn die Verbindung zu Mysql Datenbank schon eins fordert? Und genau hier fängt die Unsicherheit an. Nur man schiebt sie immer auf das Volk, das eigentlich nur das verdaut, wofür sie unschuldig getitelt werden. Wer kann was dafür, dass PHP in der Fehlermeldung beispielsweise bei file_get_contents() und nicht Erreichbarkeit auch die URL mit ggf. per GET übergebenen Passwort ausgibt, nur weil der User ein @ nicht vor setzt. Würde die Fehlermeldung nicht ohne Get Parameter oder gar URL ausreichen? Und wieder wird das kleine Volk für die Fehler der schlauen verurteilt.
Die Lücken die genutzt wurden, sind von unseren Fachleuten nicht bedacht worden. Und selbst die können diese nicht bedenken.
Also ich lehne mich nicht auf. Sicherheit ist dennoch überwichtig. Aber die Beiträge klingen einfach nach „Faulheit“ der User. Ich e auch schon mehrere Jahre, und bin mir dessen Problem bewusst. Nur die schuldigen sitzen meist auf der anderen Seite mit zig Jahren Erfahrung und urteilen über die unerfahrenen, und schieben einfach ihre eigenen Fehler weiter. Informiert wird dann wirklich nur in englisch zu 90% und in für Anfänger unverständlicher Fachsprache.
Wie soll der Peter aus der Auguststrasse nun sein System schützen? – Er wollte nur ein Gästebuch auf seiner Webseite haben, und hat jetzt ein Verfahren am Hals, wofür er nichts kann. Er hat doch alles so getan wie es in der Installationsanleitung steht, fragt er sich hinterher. Und der er des Gästebuchs behauptet, er habe sein GB nicht upgedatet, und sei deshalb an allem selbst schuld und untauglich.
Auch aus diesen doch wenn auch sehr hilfreichen Thema lese ich heraus, dass man schon studieren und zig Stunden Aufwand für eine Hobby HP aufbringen sollte (übertrieben gemeint) bevor man überhaupt eine Zeile Code eingeben kann. Und auf Xampp steht so ungefähr „Werbung: hol dir das Produkt – So installierst du es“ fertig. Die Readme ist dann oft in englisch und für einen normalen (oder gebildeten Menschen in eine andere Richtung) überhaupt nicht zu raffen. Mir und allen die erfahren sind, ging es am Anfang nicht anders. Ein Programmierer macht eben die Erfahrung reich, nicht was er kann oder meint zu können.
Würde man dem Otto Normal Verbrauche klar machen, dass selbst das ganze sein System vor gar nichts schützt, würde der zumindest die richtige Haltung einnehmen. Stattdessen entmutigt man ihn (wie genannt FAQ in engl. Update nur mit Fachwissen möglich etc…) und macht ihn für alles selbst verantwortlich.
Über Windows wird in Linux Kreisen gelästert, aber Linux ist auch nicht sicher. Und auch der Firefox wird sicher geredet, wo auch schon unzählig Lücken gab. Genau das wird hier mittels Propaganda verlautet, und genau deshalb ist sich kein Anfänger bewusst, wie er nachzudenken hat.
Viel mehr sollte man die Wahrheit weitergeben. Dein Mysql PW ist der Datei könnte jederzeit ausgelesen werden. Dann würde der unerfahrene ein Thema aufmachen „wie mach ich es sicher“?
Ist meine Meinung zu diesem Thema!
Mein Tipp an die Anfänger: Es ist überhaupt nichts sicher! Deshalb schaut danach, es so sicher wie nur möglich zu machen. ein unset() nach der Verbindung der DB besipielweise.... Habt ständig Angst um eure Passwörter und Daten, die wenn sie ein anderer lesen könnte euch Schaden zufügen!
Viel eher erkläre ich alle Anfängern, Sicherheit ist ein Wettlauf der nie aufhört. Je schneller du mitläufst desto sicherer aber keinesfalls Sicher ist man. Das war also für keinen so ausgelegt, dass er sich nicht bilden sollte. Bildung ist daher sehr wichtig. Aber kein Anfänger soll sich frustriert sehen. Die Fehler macht jeder mal. Und aus den eigenen Fehlern lernt man am besten. Aber die Hauptschuldigen in der ganzen Sachen sind zu 90% die gebildeten, die sich ihre eigenen Fehler nicht gestehen können! Und da zähle ich mich auch dazu!
Wer also den Weg erkennt, wie der Hase wirklich läuft, der Vertraut nicht nur auf den nächsten, sondern macht auch endlich sein eigenen Kopf dafür auf. So wie das von Erfahrenären dargelegt wird, oder ausgeschildert steht, würde es eigentlich nur noch mehr zu Sicherheitsproblemen führen. Oder das Volk und damit die Bildung demotivieren.
Mit meiner stolzen englischen Readme tue ich keinem was gut. Und das muss ich mir als Erfahrener eingestehen. Nur weil ich es mittlerweile verstehe, muss ein anderer dies noch lange nicht, und scheitert, obwohl er wirklich für ihn alles Mögliche getan hat, und ernstens Versucht hat alles richtig zu machen. Genau das will ich ansprechen. Wir sind uns zu stolz, deshalb herrsch Unsicherheit. Nur so vererben wir nicht Wissen sondern Ahnungslosigkeit und die wirklich guten Nachfolger bleiben aus. Und alles wir unsicherer wie es nicht sein sollte.
Geändert von Lukasz (14.07.06 um 23:58 Uhr).
|
15.07.06, 03:45
|
#14 (permalink)
|
|
mod | reptiler
Registriert seit: Apr 2002
Ort: Hong Kong
Beiträge: 12.415
|
AW: Sicherheit in PHP
Hi, Lukasz. Ich kann Deine Einwaende durchaus nachvollziehen und stimme Dir absolut zu, dass es nie 100%ige Sicherheit (ausser dem guten, alten Beispiel aus Orange (?) Book mit dem unvernetzten Computer im Glaskasten der weder per Maus noch Tastatur bedient werden kann  ) geben kann. In diesem Thread sollen jedoch Hinweise oder Artikel gepostet werden die einem auf dem Weg zur "optimalen" Sicherheit helfen sollen.
Auch wollen wir ja hier versuchen Codeschnipsel zu zeigen die tendenziell unsicher sind und dem dann das potenziell sicherere Script gegenueberstellen.
Das ist leider bisher nicht geschehen, aber wir haben hier halt schon einige interessante Links sammeln koennen.
Die meisten Artikel sind Englisch, das liegt zum einen daran, dass Englisch die Sprache des Internet ist, zum anderen aber auch, dass ich hauptsaechlich auf englischen Seiten unterwegs bin. Das Problem ist auch, dass solche Informationen wohl eher schwer auf Deutsch zu finden sind. Woran das liegt kann man nur spekulieren: Ignoranz deutscher PHP-Scripter gegenueber Security? Schreibfaulheit?
Daher find ich es besser einen Haufen englischer Artikel hier aufzulisten als garnicht, denn dadurch verliert der Thread absolut seinen Sinn.
Es geht mir bei den englischen Artikeln also keineswegs darum hier zu beweisen wie toll ich doch des Englischen maechtig bin. Hier hat niemand was zu beweisen, wir wollen hier einander helfen.
Hier auch niemand den grossen Macker in Sachen Security raushaengen lassen, nur wenn jemand in dem Bereich Erfahrung hat, wie z.B. Christian, ist es doch gerade gut wenn sich so einer auch mal Umfangreich zu Wort meldet und auf diverse Punkte aufmerksam macht.
Hier spricht auch niemand davon, dass Linux (oder Firefox) die ultimative Sicherheitsloesung gegenueber Windows (oder eben Internet Explorer) ist. Jedoch sind diese durchaus tendenziell sicherer weil eben Windows (oder Internet Explorer) in der Standardkonfiguration ein groessere Angriffsflaeche bieten als Linux (oder Firefox). Aber es geht hier auch nicht um die Frage ob nun Windows oder Linux, Internet Explorer oder Firefox, hier geht es um PHP, und darum wie man diversen Sicherheitsproblemen aus dem Weg gehen kann.
Und mal ganz ehrlich, was meinst Du denn wie viele Anfaenger ueberhaupt in diesen Thread gucken? Das werden sicher nicht all zu viele sein, denn die meisten die hierher kommen wollen schnelle Hilfe um ihr Script fertig zu bekommen, dabei ist den meisten Sicherheit erstmal unwichtig. User die sich dann laenger damit befassen fangen sich dann langsam mal an sich dafuer zu interessieren. Und Anfaengern wird hier oft genug auch mal der Hinweis praesentiert, dass der Code den sie da zusammenkloeppeln dieses oder jenes Problem bietet.
Also, wie gesagt, hier geht es nicht darum taeglich unsere Profilierungssucht zu befriedigen sondern darum anderen zu helfen.
Und wer heutzutage kein Englisch kann ist meiner Meinung nach selbst Schuld (es gibt da natuerlich auch ein paar Ausnahmen, aber diese sind eben nicht die Regel). Ich meine dabei jetzt nicht die Generation meiner Eltern, dass dort weniger Englisch unterrichtet wurde ist mir klar, aber alles ab meiner Generation hat keine Ausrede. Natuerlich gibt es auch Leute die allgemein Probleme mit Sprachen haben und auch unterdurchschnittlich intelligente Menschen, aber wenn man davon ausgeht wie miserabel Deutschland Englisch spricht, dann muessten wohl 2/3 aller deutschen Schulen Sonderschulen sein. 
Und Fachbegriffe gibt es ueberall. Wenn ich jetzt mal eine Woche Praktikum beim Blumenhaendler machen wuerde dann wuerde ich nach der Woche mit Sicherheit mindestens 10 neue Begriffe kennen.
So, es waere schoen wenn es das fuer diese Diskussion gewesen ist. Falls dennoch Bedarf zu weiteren Meinungsaeusserungen besteht bin ich gern bereit die entsprechenden Posts aus dem Thread zu trennen und einen neuen Thread daraus zu machen.
__________________
PHP Class Collection - PHP-Klassen fuer PHP 5 (und Teilweise auch fuer PHP 4)
Updates: Catcher 1.1, FTPConnection 1.2, MultiSQL 1.1, RSS2 1.1, SMTPConnection 1.4
__________________
EasyLFS - Hintergrundinformationen, Installationsanleitung, Softwareliste und Download
EasyLFS Projektthread - Informationen, Status und Diskussion zu meiner Linux-Distribution
__________________
Zitat:
|
Ich bin die Schildkroete, mein Sohn. Ich habe das Universum erschaffen, aber bitte mach mir daraus keinen Vorwurf; ich hatte Bauchschmerzen.
|
__________________
Zitat:
|
Zitat von Friedrich Nietzsche
Man muss noch Chaos in sich haben, um einen tanzenden Stern gebaeren zu koennen.
|
|
15.07.06, 11:43
|
#15 (permalink)
|
Registriert seit: Mar 2001
Ort: München
Beiträge: 4.847
Renommee-Modifikator: 38
|
AW: Sicherheit in PHP
Zitat:
|
Zitat von Lukasz
Wie der Titel des Themas predigt „Sicherheit in PHP“ kann es nie und nimmer geben. Und das wird es auch nie geben! Und man kann es auch nicht durch Aufmerksamkeit oder Achtsamkeit verhindern. Man kann es nur beschränken!
|
Ja, aber obwohl der Airbag keinen 100% igen Schutz vor dem Verkehrstot bietet, ist er dennoch für mich ein Kaufargument bei einem Auto.
Zitat:
|
Der Hase liegt ganz wo anders begraben. Und das weis jeder für sich, der nur 3 Zeilen Code und sich schon mal ein Virus eingefangen hat. Man schreibt dem unerfahrenen Volk vor, sein PC ständig upzudaten, Firewall und Antivirus zu betreiben, E-Mailanhänge bestens nicht zu öffnen und noch vieles mehr, um Sicherheit zu erlangen, die es nie gibt und auch nie geben wird.
|
Sicherheit ist immer dem Zustand der kompletten Sicherheit so nah wie möglich zu kommen.
Zitat:
|
Ich soll also 5 Jahre Betriebsysteme studieren, PHP im Modul selbst studieren, weis sonst noch was, um sicher 3 Zeilen Code zu tippen? Schöne Welt aber so ist sie. Und trotzdem gibt es Tools die Passwörter angeblich sicher aufbewahren können, sie jedoch wieder ausgeben können. Das Volk wird wieder vergackeiert.
|
Ja es wird viel Geld mit angeblicher Sicherheit gemacht. Im Grunde aber ist die IT-Sicherheit nicht die Summe an Tools sondern ein sicherheitsbewusster Umgang mit
dem Rechner, an die Situation angepasst.
Zitat:
|
Jedes Passwort hat auf einem PC nichts verloren. Denn alles was wieder ausgegeben wird, kann auch ausgenutzt werden.
|
Das stimmt so nicht. Es gibt unkritische und kritische Passwörter. Ich habe z.b ein sehr einfaches Standardpasswort das keinen Regeln wie [Gross und Kleinschriebung verschieden- nicht zusammenhängende Wörter usw] entspricht.
Dieses Passwort nutze ich wenn ich mich auf Seite bzw Forum XYZ anmelde.
Genauso nutze ich dieses Passwort auf meinen lokalen Datenbanken.
Andere Passwörter die sehr komplex sind in der Form XaG4k2z9haff habe ich dafür für kritische Dinge.
Zitat:
|
Nur wie soll das funktionieren, wenn die Verbindung zu Mysql Datenbank schon eins fordert? Und genau hier fängt die Unsicherheit an.
|
Es spricht nichts dagegen wenn du ein Passwort auf der Platte speicherst.
Denke einfach daran das dein MySQL Passwort zu einem MySQL User gehört der nur die nötigsten Rechte hat. Das Passwort nicht von aussen aufrufbar ist. Mann eben kein "chmod 777 config.php" aus Faulheit / Unwissen absetzt.
Sicherheit ist die Summe von Wissen / Verantwortungsvolles Verhalten.
Zitat:
|
Nur man schiebt sie immer auf das Volk, das eigentlich nur das verdaut, wofür sie unschuldig getitelt werden. Wer kann was dafür, dass PHP in der Fehlermeldung beispielsweise bei file_get_contents() und nicht Erreichbarkeit auch die URL mit ggf. per GET übergebenen Passwort ausgibt, nur weil der User ein @ nicht vor setzt.
|
@ sollte sowieso nicht eingesetzt werden. Ein Fehler ist ein Fehler und sollte nicht einfach ignoriert werden. PHP kann Exceptions abfangen, wenn mann denn schon weiss
das hier ein Fehler passieren kann sollte man die Möglichkeit auch berücksichtigen und nicht einfach unterdrücken.
Auf einem Produktivsystem sollte: display-errors auf 0 gesetzt sein.
http://de3.php.net/manual/en/ref.err...display-errors
Dann gibt es auch keine Probleme mit Fehlerbehandlung übersehen.
Zitat:
|
Würde die Fehlermeldung nicht ohne Get Parameter oder gar URL ausreichen? Und wieder wird das kleine Volk für die Fehler der schlauen verurteilt.
|
Nein hier ist das kleine Volk schuldig wenn die Konfiguration eines Produktivsystems Fehlermeldungen darstellt. Denn das "kleine Volk" kann entweder unter diesem Flag (display-errors) 0 setzen oder seinem Hoster auf das Dach steigen das die das machen.
Zitat:
|
Die Lücken die genutzt wurden, sind von unseren Fachleuten nicht bedacht worden. Und selbst die können diese nicht bedenken.
|
was gefällt dir an display-errors nicht?
Zitat:
|
Also ich lehne mich nicht auf. Sicherheit ist dennoch überwichtig. Aber die Beiträge klingen einfach nach „Faulheit“ der User. Ich e auch schon mehrere Jahre, und bin mir dessen Problem bewusst. Nur die schuldigen sitzen meist auf der anderen Seite mit zig Jahren Erfahrung und urteilen über die unerfahrenen, und schieben einfach ihre eigenen Fehler weiter. Informiert wird dann wirklich nur in englisch zu 90% und in für Anfänger unverständlicher Fachsprache.
|
Software entwicklung ist ein Fachgebiet. Ähnlich wie Ingeneurswesen. Ich werde kein Haus entwerfen und dann bauen weil ich davon keine Ahnung habe.
Will ich das ändern, dann muss ich etwas dafür tun. Genauso wenig ist Programmieren kein Gebiet das man ohne sich ständig zu informieren meistern kann.
Die Syntax einer Sprache zu kennen ist nicht die halbe Miete beim Wissen, sondern maximal 5% dessen was man wissen sollte.
Zitat:
|
Wie soll der Peter aus der Auguststrasse nun sein System schützen? – Er wollte nur ein Gästebuch auf seiner Webseite haben, und hat jetzt ein Verfahren am Hals, wofür er nichts kann. Er hat doch alles so getan wie es in der Installationsanleitung steht, fragt er sich hinterher. Und der er des Gästebuchs behauptet, er habe sein GB nicht upgedatet, und sei deshalb an allem selbst schuld und untauglich.
|
Peter aus der Auguststrasse hätte eine Firma beauftragen sollen wenn er das Wissen nicht hat. Wenn ich im Haus Kabel verlegen will, dann lass ich einen Elektriker kommen oder einen Freund der Ahnung davon hat. Der Grund ist einfach: ich habe nicht den blassesten Schimmer.
Und ich wette mit dir er kommt (aufgrund der Menge an IT Studenten) billiger weg als wenn er einen Elektriker zahlen müsste.
Will er es selber machen, so muss er sich umfassend informieren und tips auch beherzigen. "Works for me!" reicht nicht aus.
Zitat:
|
Auch aus diesen doch wenn auch sehr hilfreichen Thema lese ich heraus, dass man schon studieren und zig Stunden Aufwand für eine Hobby HP aufbringen sollte (übertrieben gemeint) bevor man überhaupt eine Zeile Code eingeben kann
|
Zig Stunden Aufwand sollte mann wirklich aufbringen bevor man seine Hobby HP programmiert. Das ist vollkommen richtig.
Genauso wie ich zig Stunden Aufwand hätte würde ich im Haus die ganze Verkabelung selber machen. Ich müsste mich genauso darum kümmern das ich mir das Wissen um Sicherheit aneigne das Kinder die zu besuch sind nicht beim langen in eine Ecke einen Schlag bekommen. Passiert das weil ich keine Ahnung von Elektrik hatte, und ein Kind deshalb stirbt, nur weil ich nicht bereit war es machen zu lassen, dann habe ich zurecht ein Verfahren am Hals.
Zitat:
|
. Und auf Xampp steht so ungefähr „Werbung: hol dir das Produkt – So installierst du es“ fertig. Die Readme ist dann oft in englisch und für einen normalen (oder gebildeten Menschen in eine andere Richtung) überhaupt nicht zu raffen.
|
Es gibt da draussen fantastische Bücher in Deutsch! Es gibt sogar einige kostenlose Bücher in deutsch.
Genügend Material um sich das Wissen anzueignen. Mann benötigt kein Diplom um saubere Software zu schreiben sondern nur den Antrieb und die Zeit sich das Wissen anzueignen.
Zitat:
|
Mir und allen die erfahren sind, ging es am Anfang nicht anders. Ein Programmierer macht eben die Erfahrung reich, nicht was er kann oder meint zu können.
|
Das ist richtig. Erfahrung ist der beste Weg um stabile und sichere Software zu programmieren. Aber man kann sich die Erfahrung im Bereich Sicherheit erst dann aneignen wenn man sie von Anfang an lernt.
Das bedeutet lernt man gerade wie man in PHP Dateien öffnet und ausliest sollte man genau in dem Moment auch lernen wie man damit umgeht wenn Dateien nicht gefunden werden, Dateien Korrupt sind usw.
Das bedeutet Programmieren lernen heisst nicht nur zu lernen wie welche Funktionen aufgerufen werden, sondern wie der Code Strukturiert wird das jenes Programm auch mit erwartbaren Fehler umgehen kann.
Leider bietet PHP hier @ an, was für viele Progammieranfänger ein kurzes merkbares Statement ist um sich nicht mehr damit beschäftigen zu müssen.
Zitat:
|
Über Windows wird in Linux Kreisen gelästert, aber Linux ist auch nicht sicher. Und auch der Firefox wird sicher geredet, wo auch schon unzählig Lücken gab. Genau das wird hier mittels Propaganda verlautet, und genau deshalb ist sich kein Anfänger bewusst, wie er nachzudenken hat.
|
Linux ist nicht per default sicher. Aber Sicherheit ist kein Zustand sondern die Summe vieler Faktoren. Ich habe erst letzte Woche versucht auf meinem Windows Rechner MS Flugsimulator 2004 zu installieren. Ich habe die Installation abgebrochen als die Meldung kam das ich jene Software nur mit einem Administrator Accaunt starten kann.
Mann wird keine RedHat Software finden die nur mit root Accaunt gestartet werden kann und um das es sich um etwas ähnlich wie ein Spiel handelt.
Es findet zwar zum Glück ein umdenken bei MS statt (aufgrund der massiven negativen Nachrichten über Windows Würmer usw) aber MS hat das Problem das sie ein Betriebssystem welches vom Konzept her unsicher ist auf Sicherheit trimmen müssen.
Bei Windows kommt vieles in die Quere:
- Homogene Softwarelandschaft (IE, OE)
- Ursprung in einem System ohne Userverwaltung (Dos, win 3.11, win95..)
- Vorrangiges Einsatzgebiet Spiele & Multimedia / Desktop
- Den Anspruch komplexe Dinge einfach zu machen
- Riesige Verbreitung
Linux hat es einfacher sicher zu sein. Seine Wurzeln liegen bei UNIX, einem Server Betriebssystem welches Sicherheit seid Jahrzehnten propagiert als es bei CM/P bzw DOS nichtmal eine Userverwaltung und Dateiberechtigungen gab.
aber das ist eigentlich ein anderes Thema ...
Zitat:
|
Viel mehr sollte man die Wahrheit weitergeben. Dein Mysql PW ist der Datei könnte jederzeit ausgelesen werden. Dann würde der unerfahrene ein Thema aufmachen „wie mach ich es sicher“?
|
ich mach dir ein Vorschlag. Wenn du im PHP Forum ein Thread siehst in dem nach XY gefragt wird, und sich unsicherer Code zeigt. Dann mach ihn nicht nur auf die Lösung XY aufmerksam sondern stubse seine Nase auch auf die Schwachstelle.
Zitat:
|
Mein Tipp an die Anfänger: Es ist überhaupt nichts sicher! Deshalb schaut danach, es so sicher wie nur möglich zu machen. ein unset() nach der Verbindung der DB besipielweise.... Habt ständig Angst um eure Passwörter und Daten, die wenn sie ein anderer lesen könnte euch Schaden zufügen!
|
Wie ich schon im anderen Post sagte: Paranoia schadet nicht
Zitat:
|
Viel eher erkläre ich alle Anfängern, Sicherheit ist ein Wettlauf der nie aufhört. Je schneller du mitläufst desto sicherer aber keinesfalls Sicher ist man. Das war also für keinen so ausgelegt, dass er sich nicht bilden sollte. Bildung ist daher sehr wichtig. Aber kein Anfänger soll sich frustriert sehen. Die Fehler macht jeder mal. Und aus den eigenen Fehlern lernt man am besten. Aber die Hauptschuldigen in der ganzen Sachen sind zu 90% die gebildeten, die sich ihre eigenen Fehler nicht gestehen können! Und da zähle ich mich auch dazu!
|
Die Hauptschuldigen sind jene die kein Interresse an Sicherheit haben. Ganz gleich ob mann sie zu den "Gebildeten" zählen kann oder nicht.
Zitat:
|
Wer also den Weg erkennt, wie der Hase wirklich läuft, der Vertraut nicht nur auf den nächsten, sondern macht auch endlich sein eigenen Kopf dafür auf. So wie das von Erfahrenären dargelegt wird, oder ausgeschildert steht, würde es eigentlich nur noch mehr zu Sicherheitsproblemen führen. Oder das Volk und damit die Bildung demotivieren.
|
Sorry du argumentierst konfus. Spezifiere denn doch mal wen du mit "Erfahrenären" meinst in diesem Zusammenhang genau meinst.
Ein Link wäre hier hilfreich.
Zitat:
|
Mit meiner stolzen englischen Readme tue ich keinem was gut. Und das muss ich mir als Erfahrener eingestehen.
|
Wer kein Englisch lesen kann der sollte nicht programmieren.
Zitat:
|
Nur weil ich es mittlerweile verstehe, muss ein anderer dies noch lange nicht, und scheitert, obwohl er wirklich für ihn alles Mögliche getan hat, und ernstens Versucht hat alles richtig zu machen. Genau das will ich ansprechen. Wir sind uns zu stolz, deshalb herrsch Unsicherheit. Nur so vererben wir nicht Wissen sondern Ahnungslosigkeit und die wirklich guten Nachfolger bleiben aus. Und alles wir unsicherer wie es nicht sein sollte.
|
Aber nicht aufgrund englischer Doku. Wenn ich eine Doku eines Systems nicht verstehe weil sie Fachwissen vorraussetzt das ich nicht habe, dann habe ich die Finger von dem System zu lassen.
Anders ist natürlich wenn die Doku einfach schlecht ist, aber auch dann lass ich die Finger von dem System.
Eine Doku die sämmtliche Fachbegriffe versucht zu vermeiden und umschreibt ist für mich nicht lesbar. Denn gerade Fachbegriffe machen eine Doku greifbar und verständlich.
Wenn eine Doku mir erklärt das ich an die Konfiguration über das Singleton Configuration rankomme dann ist das für mich auf den 1. Blick verständlich. Beschreibt die Doku aber über 10 Zeilen was ein Singleton ist und weshalb ich nicht einfach die Klasse instanzieren kann dann verliere ich den Blick für das wesentliche und die Doku ist schlecht.
__________________
Erst wenn der letzte Programmierer eingesperrt...
...und die letzte Idee patentiert ist, werdet ihr merken, dass Anwälte nicht programmieren können.
-------------------
chris: hey Tom hast du eigentlich ne Freundin
jdar: ich bin tutorials.de Mod!
|
|
| Themen-Optionen |
|
|
| Ansicht |
Linear-Darstellung
|
|
 |
|
»
Neue Tutorials
|
 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
»
Letzte News
|
 |
|
|
|
|
|
|
|
|
|
|
»
Tools
|
 |
|
|
|
|
|
»
Neue Links
|
 |
|
|
|
|
(Cinema 4D-Objekte)
|
|
(Cinema 4D-Tutorials)
|
|
(Cinema 4D-Tutorials)
|
|
(Cinema 4D-Tutorials)
|
|
(Cinema 4D-Tutorials)
|
|
»
Jobs @ tutorials.de
|
 |
|
|
|
|
|
|
|
|
|
|