Zurück   Flashforum > Flash und Server > Flash Remoting

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 25-04-2007, 13:36   #1 (permalink)
paranoid...
 
Benutzerbild von Geheimrat
 
Registriert seit: Aug 2002
Ort: Marburg
Beiträge: 1.003
AMFPHP/Sicherheit

Hi,

ich benutze seit mehreren Wochen testweise AMFPHP und bin davon recht angetan. Mittlerweile geht auch der Arbeitsablauf recht flott: Service anlegen, zum Service verbinden, aus Datenbank auslesen, in Datenbank schreiben, etc.

Aber beim Stichwort "Datenbank" fiel mir da eine Diskussion wieder ein, die es doch mal zum Thema "Sicherheit" gab.
Thema: Flashdateien können dekompiliert werden (und die darin enthaltenen URLs dazu missbraucht werden, um manuell irgendwelchen Unfug in der Datenbank zu treiben, etc.).

Also...ich trau mich ja kaum zu fragen...

...wie sieht es denn mit der Sicherheit bei AMFPHP aus?

Beispiel:

Ich habe eine SWF, welche sich mittels AMFPHP mit einer mySQL-Datenbank verbindet. Die Daten werden von dort geholt und im Flash ausgegeben. Wenn man nun die Daten im Flash ändert, wird wieder AMFPHP benutzt, um die neuen Daten in die Datenbank zu schreiben.

Wie sicher ist das? Kann man das hacken? Wenn ja, wie?

Versteht mich nicht falsch...ich mache nicht allzuviel mit PHP und kenne mich da auch nicht sooo doll aus...mir würde aber auch schon ein Link zu einer Seite reichen, wo drin steht: "AMFPHP ist sicher/unsicher, WEIL...".

Vielleicht seh ich auch nur gerade den Wald vor lauter Bäumen nicht...

Gruß,
Geheimrat
__________________
...ich sag's nur meinem Fanblog: ICH BLOGGE !

Geändert von Geheimrat (25-04-2007 um 14:32 Uhr)
Geheimrat ist offline   Mit Zitat antworten
Alt 25-04-2007, 13:45   #2 (permalink)
mushroom powered
 
Benutzerbild von b.asile
 
Registriert seit: Jun 2005
Ort: Amsterdam
Beiträge: 2.649
Ich denke AMFPHP ist genauso sicher / unsicher wie jede andere Schnittstelle zu DB auch,
Nightflyer hat doch letztens ein paar Seiten PDF geschrieben, welches sich zwar auf Browsergames bezog, aber das Thema Sicherheit in PHP recht gut zu wort brachte.
In den Quellen seines PDFs ist auch noch ein Link zu einem weitaus ausführlicherem PDF, welches das Thema Sicherheit in PHP behandelt!

Ich denke ein Stichwort hier ist auf jeden Fall htaccess!

gruß b.asile
PS: Link wird nachgeliefert!

PPS: Lange gesucht...und jetzte endlich gefunden!
__________________
[ WHEN THE GOING GETS WEIRD THE WEIRD TURN PRO ]

devboy.org

Geändert von b.asile (25-04-2007 um 13:51 Uhr)
b.asile ist offline   Mit Zitat antworten
Alt 25-04-2007, 19:26   #3 (permalink)
Perverted Hermit
 
Benutzerbild von Omega Psi
 
Registriert seit: Mar 2004
Ort: Delmenhorst
Beiträge: 12.142
Das heisst konkret, wenn du nicht die Daten prüfst, die in die DB gehen, kann es durchaus sein, dass da Unfug getrieben werden könnte.
Omega Psi ist offline   Mit Zitat antworten
Alt 25-04-2007, 19:36   #4 (permalink)
mushroom powered
 
Benutzerbild von b.asile
 
Registriert seit: Jun 2005
Ort: Amsterdam
Beiträge: 2.649
Zitat:
Zitat von Omega Psi Beitrag anzeigen
Das heisst konkret, wenn du nicht die Daten prüfst, die in die DB gehen, kann es durchaus sein, dass da Unfug getrieben werden könnte.
Jap! MYSQL Injection ist da das Stichwort, wird aber in beiden genannten PDFs intensiv behandelt.

Mit .htaccess meinte ich den zugriff auf Ordner mit Skript, explizit nur den Dateien erlauben welche ihn auch haben sollen.
Aber die bin ich auch nicht wirklich schlau, muss ich selber auch immer viel nachschlagen im Netz.

Mehr fällt mir momentan zu dem Thema auch nicht ein,
ob es jetzt AMFPHP-spezifische Sicherheitslücken gibt, weiss ich nicht bezweifele es aber.

gruß b.asile
__________________
[ WHEN THE GOING GETS WEIRD THE WEIRD TURN PRO ]

devboy.org
b.asile ist offline   Mit Zitat antworten
Alt 26-04-2007, 07:26   #5 (permalink)
paranoid...
 
Benutzerbild von Geheimrat
 
Registriert seit: Aug 2002
Ort: Marburg
Beiträge: 1.003
Moin,

schon mal danke für den Link. Das werde ich mir mal durchlesen.

Allerdings meinte ich nicht SQL-Injection. Was ich meinte, war folgendes:

Über das Flash rufe ich ja eine PHP-Datei auf, die die Daten in die Datenbank schreibt. Ist es möglich, die PHP-Datei auch separat (ohne Flash) aufzurufen, um damit irgendwas in die Datenbank zu schreiben?

So nach dem Motto:
PHP-Code:
/flashservices/services/meinService.php?var1=bla&var2=blubb... 
Das hatte ich mal probiert, um gezielt Werte in die Datenbank zu schreiben...ging aber nicht...vielleicht war das aber auch von mir der falsche Ansatz.

Wie gesagt...kann sein, dass die Antwort total simpel ist (und ich mangels PHP-Kenntnissen einfach nicht drauf komme)...
__________________
...ich sag's nur meinem Fanblog: ICH BLOGGE !
Geheimrat ist offline   Mit Zitat antworten
Alt 26-04-2007, 07:30   #6 (permalink)
mushroom powered
 
Benutzerbild von b.asile
 
Registriert seit: Jun 2005
Ort: Amsterdam
Beiträge: 2.649
Zitat:
Zitat von b.asile Beitrag anzeigen
Mit .htaccess meinte ich den zugriff auf Ordner mit Skript, explizit nur den Dateien erlauben welche ihn auch haben sollen.
Aber hier bin ich auch nicht wirklich schlau, muss ich selber auch immer viel nachschlagen im Netz.
^^dann meinst du das da
__________________
[ WHEN THE GOING GETS WEIRD THE WEIRD TURN PRO ]

devboy.org
b.asile ist offline   Mit Zitat antworten
Alt 06-05-2007, 09:51   #7 (permalink)
x39
 
Benutzerbild von georgem
 
Registriert seit: Oct 2004
Ort: St.Gallen, Schweiz
Beiträge: 1.261
über dieses thema kann es nicht genug threads geben.

Man sollte sich auf jeden Fall auf X verschiedene Arten schützen, und wenns geht auch Ablenkungen einbauen um den Hacker aufzuhalten.

Ich bin auch seit kurzem ein AMFPHP-Liebhaber, die Arbeit damit geht sehr flott. Und wie der AMFPHP-Autor selber auf www.amfphp.org schreibt ist das weder sicherer noch unsicherer als jede andere direkte Methode zu einer Datenbank zu verbinden.
MfG
__________________
The Sleeper Must Awaken

www.margaris.de | www.exosolar.net

Geändert von georgem (06-05-2007 um 09:53 Uhr)
georgem ist offline   Mit Zitat antworten
Alt 06-05-2007, 09:59   #8 (permalink)
pixel prostitute
 
Benutzerbild von bishop
 
Registriert seit: Mar 2004
Ort: berlin
Beiträge: 8.426
Zitat:
Zitat von Geheimrat Beitrag anzeigen
Moin,

schon mal danke für den Link. Das werde ich mir mal durchlesen.

Allerdings meinte ich nicht SQL-Injection. Was ich meinte, war folgendes:

Über das Flash rufe ich ja eine PHP-Datei auf, die die Daten in die Datenbank schreibt. Ist es möglich, die PHP-Datei auch separat (ohne Flash) aufzurufen, um damit irgendwas in die Datenbank zu schreiben?

So nach dem Motto:
PHP-Code:
/flashservices/services/meinService.php?var1=bla&var2=blubb... 
Das hatte ich mal probiert, um gezielt Werte in die Datenbank zu schreiben...ging aber nicht...vielleicht war das aber auch von mir der falsche Ansatz.

Wie gesagt...kann sein, dass die Antwort total simpel ist (und ich mangels PHP-Kenntnissen einfach nicht drauf komme)...
Wenn die Daten an das Script per POST geschickt werden, bringt dir ein GET-Request bei deaktiviertem register_globals bzw. expliziter Nutzung des Superglobals $_POST nichts. Du müsstest dir dann einen eigenen POST-Request schreiben (oder simpel als HTML-Form). Dann sollte o.g. wieder auf das PHP-Script wirken können.

Ohne Validierung der Daten ist dein Script somit wieder gefährdet.
__________________
:: Bilder hochladen, Lizenzfreie Bilder günstig kaufen, Webdesign, Passwort Generator ::
currently listen: reaper - totengräber 07 // nachtmahr - nachtmahr // grendel - hate this // nurzery rhymes - coroner // panic lift - everything i have
bishop ist offline   Mit Zitat antworten
Alt 06-05-2007, 10:03   #9 (permalink)
x39
 
Benutzerbild von georgem
 
Registriert seit: Oct 2004
Ort: St.Gallen, Schweiz
Beiträge: 1.261
Zitat:
Zitat von bishop Beitrag anzeigen
Ohne Validierung der Daten ist dein Script somit wieder gefährdet.
Validieren sollte man immer, darauf kann man wohl kaum verzichten. Auch wenn man sich relativ sicher fühlt , oder erst recht dann
__________________
The Sleeper Must Awaken

www.margaris.de | www.exosolar.net
georgem ist offline   Mit Zitat antworten
Alt 06-05-2007, 10:13   #10 (permalink)
pixel prostitute
 
Benutzerbild von bishop
 
Registriert seit: Mar 2004
Ort: berlin
Beiträge: 8.426
Zitat:
Zitat von georgem Beitrag anzeigen
Validieren sollte man immer, darauf kann man wohl kaum verzichten. Auch wenn man sich relativ sicher fühlt , oder erst recht dann
Naja, gibt genügend, die versuchen nach diesem Konzept zu arbeiten. Zwischen sollte und wirklich machen sind manchmal Welten.
__________________
:: Bilder hochladen, Lizenzfreie Bilder günstig kaufen, Webdesign, Passwort Generator ::
currently listen: reaper - totengräber 07 // nachtmahr - nachtmahr // grendel - hate this // nurzery rhymes - coroner // panic lift - everything i have
bishop ist offline   Mit Zitat antworten
Alt 09-05-2007, 00:33   #11 (permalink)
x39
 
Benutzerbild von georgem
 
Registriert seit: Oct 2004
Ort: St.Gallen, Schweiz
Beiträge: 1.261
Das stimmt :-)

mit guten Absichten ist noch nichts erreicht. Manch einer merkt beim erstellen des Sicherheitskonzeptes dann wie schwer und zeitraubend das ist, und wechselt dann doch zur obskuren Methode.
__________________
The Sleeper Must Awaken

www.margaris.de | www.exosolar.net
georgem ist offline   Mit Zitat antworten
Alt 09-05-2007, 09:08   #12 (permalink)
mushroom powered
 
Benutzerbild von b.asile
 
Registriert seit: Jun 2005
Ort: Amsterdam
Beiträge: 2.649
Zitat:
Zitat von georgem Beitrag anzeigen
Validieren sollte man immer.
Jup. Da fällt mir gerade ein,
kennt jemand ein gutes Validations-Repartoire für (deutsche) Formulare?
Also nur ein paar Standard-Sachen abgesehen von einer E-Mail Validation?

gruß b.asile
__________________
[ WHEN THE GOING GETS WEIRD THE WEIRD TURN PRO ]

devboy.org
b.asile ist offline   Mit Zitat antworten
Alt 10-05-2007, 02:13   #13 (permalink)
x39
 
Benutzerbild von georgem
 
Registriert seit: Oct 2004
Ort: St.Gallen, Schweiz
Beiträge: 1.261
ne Sammlung speziell auf AMFPHPs Bedürfnisse kenn ich jetzt nicht, würd mich auch interessieren.

Zumindest geht (ging) der Macher in einem Video auf das MySQLInject Problem sehr gut ein...

Ansonsten würd ich sagen: es kommt ja immer drauf an, was du überhaupt für Daten hin und her schickst.... wenns ne Highscore sein soll, oder ein Schachzug bei einem Roundbased Schachspiel... es gibt ja x-beliebige Validierungen , massgeschneidert auf den eigenen Content...
Also validieren wäre, input scannen und alles was nicht reinpasst abschneiden , oder gleich komplett abweisen.


Die einzige Standart Validierung die ich als Funktion habe ist wie du sagst die Emailvalidierung...
__________________
The Sleeper Must Awaken

www.margaris.de | www.exosolar.net
georgem ist offline   Mit Zitat antworten
Alt 10-05-2007, 08:32   #14 (permalink)
---
 
Benutzerbild von kakktus
 
Registriert seit: Apr 2002
Beiträge: 2.054
Hallo,

ich denke auch, dass es schwierig ist, ne standard validierungen zu finden,
da es ja immer andere daten sind, die hin und her gesendet werden.

Wie macht ihr das denn so??
Mal abgesehen von so sachen wie mysql_real_escape_string(), prüfe ich meine vars mit regulären ausdrücken und sollte was nicht passen, breche ich ab.
Ist zwar etwas aufwändiger für jede var die regex zu basteln, aber ich denke eine recht sichere variante. Oder was meint ihr??
__________________

Gruß kakktus
kakktus ist offline   Mit Zitat antworten
Alt 10-05-2007, 12:46   #15 (permalink)
Frau Arafna
 
Benutzerbild von _root.Sabine
 
Registriert seit: Oct 2002
Ort: Hamburg
Beiträge: 952
Zitat:
Zitat von bishop Beitrag anzeigen
Wenn die Daten an das Script per POST geschickt werden, bringt dir ein GET-Request bei deaktiviertem register_globals bzw. expliziter Nutzung des Superglobals $_POST nichts. Du müsstest dir dann einen eigenen POST-Request schreiben (oder simpel als HTML-Form). Dann sollte o.g. wieder auf das PHP-Script wirken können.

Ohne Validierung der Daten ist dein Script somit wieder gefährdet.
gibt es keinen einfachen weg zu verhindern dass (außer meinem swf was auf dem selben server) liegt jemand den service anspricht?
__________________

kid a
_root.Sabine ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht

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

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



Alle Zeitangaben in WEZ +1. Es ist jetzt 00:05 Uhr.

Domains, Webhosting & Vserver von Host Europe
Unterstützt das Flashforum!
Adobe User Group


Copyright ©1999 – 2012 Marc Thiele