Anzeige - [Interessiert an einer Anzeige?]
(?) Tags raten (?) (edit)
 
Reply to this topicStart new topicStart Poll
> Sicherheitscheck für GET und Post-Variablen..., Ziffern, Wort, Texteingaben, etc...
BartTheDevil89
Geschrieben am: So 10.02.2008, 14:43
Report PostQuote Post

AyomRank 4
********

Gruppe: Member (aktiv)
Beiträge: 118
Mitglied seit: 6.12.2005


Hallo,

ich bin derzeit dabei einige Projekte auf ihre Sicherheit zu verbessern. Dabei habe ich mir nun Gedanken gemacht. Denn die Schwachstelle schlecht hin ist sind ja GET und POST-Varibalen. Oder sollte man sich noch auf weitere Sachen konzentrieren?

Zu den GET und Post-Variblen: Dabei sind mir vier verschiedene Möglichkeiten in den Sinn gekommen:

1. Ziffern (Bsp 98349)
2. einzelnes Wort (Bsp: delete)
3. Texteingabe (Bsp Ich bin ein Text mitvielen Sachen..)
4. Dateiupload (Bsp Upload von Bilddateien)
Nun bin ich derzeit dabei mir zu überlegen, wie ich diese Dinge genau überprüfe, damit sie keine SQL-Injections, etc.drin hat. Aber leider fällt mir nichts genau ein. Wie würde ihr das am besten in jedem Fall machen? Ziel sollte es sein, dass alles böse rausgeworfen wird, damit ich dann vielleicht auch leere Ergebnisse am Ende herausbekomme aber eben sichere. Denn ich möchte dann für jeden Fall mir eine Funktion erstellen, durch die ich das get, bzw. post-Ergebnis durchlaufen lasse und dann eben den überprüften Wert herausbekomme oder eben ein leeres oder von bösen entferntes Ergebnis.


--------------------
Zocko.de
Flashspiele kostenlos zocken und jeden Monat neue Preise abstauben... das, eine große Community, Free SMS Service und viel mehr auf Zocko.de
Also, sei dabei!!! :dance:
Top
PMEmail PosterUsers Website
Top
 
 
nitrit
#2 Geschrieben am: So 10.02.2008, 14:59 (+00:16)
Report PostQuote Post

AyomRank 5
**********

Gruppe: Member (aktiv)
Beiträge: 240
Mitglied seit: 8.08.2007


PHP als Sprache? Ich nehme einfach mal an...

1. is_numeric | is_int | (int)
2. is_string ? ich glaube hier meinst du wohl mysql_escape_string
3. Dasselbe wie No 2?
4. $_FILES ... was möchtest du genau überprüfen? Die erste Überprüfung auf Typ könntest du schonmal per Dateiendung machen. Sollte diese stimmen, kannst du noch per Headerdaten auslesen die eigentliche Dateierweiterung herausfinden


--------------------
Top
PMEmail Poster
Top
 
bowling-liga
#3 Geschrieben am: So 10.02.2008, 15:08 (+00:08)
Report PostQuote Post

AyomRank 4
********

Gruppe: Member (aktiv)
Beiträge: 56
Mitglied seit: 16.05.2007


In dem Zusammenhang ist vielleicht auch die Filter Extension interessant.

Cheers,
Den.


--------------------
Top
PMEmail PosterUsers Website
Top
 
BartTheDevil89
#4 Geschrieben am: So 10.02.2008, 15:10 (+00:02)
Report PostQuote Post

AyomRank 4
********

Gruppe: Member (aktiv)
Beiträge: 118
Mitglied seit: 6.12.2005


Hab jetzt mal jeweils Beispiele dazugetan...


--------------------
Zocko.de
Flashspiele kostenlos zocken und jeden Monat neue Preise abstauben... das, eine große Community, Free SMS Service und viel mehr auf Zocko.de
Also, sei dabei!!! :dance:
Top
PMEmail PosterUsers Website
Top
 
mainlink
Mainlink Internet
#5 Geschrieben am: So 10.02.2008, 15:53 (+00:42)
Report PostQuote Post

AyomRank 5
**********

Gruppe: Member (aktiv)
Beiträge: 202
Mitglied seit: 12.09.2007


jAuer, erbarmen Sie sich wink.gif

Ziffern prüfe ich immer mit ctype_digit().

Falls ich einen von verschiedenen Strings erwarte, stopfe ich die zulässigen Werte ich ein Array und prüfe, ob der übergebene Wert darin vorkommt.

trim und mysql_escape_string benutze ich immer; zusätzlich kürze ich die Länge des Wertes auf zu erwartende Werte, damit mir niemand Goethes Faust übergibt.

Die o.g. Maßnahmen habe ich in entsprechende Funktionen aufgenommen, damit ich sie einfacher nutzen kann (checkNum() u.ä.)


--------------------
Sichere (managed) Rootserver, Webspace und Mailaccounts unter FreeBSD: Mainlink Internet
Top
PMEmail PosterUsers WebsiteMSN
Top
 
Jörg Kruse
#6 Geschrieben am: So 10.02.2008, 18:52 (+02:59)
Report PostQuote Post

AyomRank 5
Group Icon

Gruppe: Experten Entwicklung
Beiträge: 394
Mitglied seit: 19.12.2004


QUOTE
Denn die Schwachstelle schlecht hin ist sind ja GET und POST-Varibalen. Oder sollte man sich noch auf weitere Sachen konzentrieren?


Alles was vom Client kommt, ist nicht vertrauenswürdig - Dateiuploads hast du selbst schon genannt, aber auch Cookies sollten z.B. überprüft werden


--------------------
Top
PMEmail PosterUsers Website
Top
 
sd12
#7 Geschrieben am: So 10.02.2008, 18:56 (+00:04)
Report PostQuote Post

AyomRank 9
Group Icon

Gruppe: Moderatoren
Beiträge: 3574
Mitglied seit: 3.03.2004


HEADERs, Browser Identification etc


--------------------
************************
Treiber f[r das Kezboard ist [berfl[ssig.
Top
PMEmail PosterICQMSN
Top
 
jAuer
Jürgen Auer - freiberufl. Programmierer
#8 Geschrieben am: Mo 11.02.2008, 10:46 (+15:49)
Report PostQuote Post

AyomRank 9
Group Icon

Gruppe: Experten Entwicklung
Beiträge: 2082
Mitglied seit: 4.02.2006


QUOTE (BartTheDevil89 @ So 10.02.2008, 14:43)
Denn die Schwachstelle schlecht hin ist sind ja GET und POST-Varibalen.

Das ist zunächst Unsinn.

Der Nutzer kann alles mögliche schicken, er kann ja auch O'Neill heißen oder nach entsprechenden Ausdrücken suchen: 'Gibt es in der Datenbank ein Feld mit dem Inhalt <script>?'

Entscheidend ist, daß lediglich aus Nutzername, Passwort und Session-ID sicherheitsrelevante Entscheidungen getroffen werden.

Und wenn man konsequent gespeicherte Prozeduren verwendet, dann hat man kein Problem mit Sql-Injektionen. Das wird erst dann zum Problem, wenn man Sql-Code dynamisch zusammenbaut - das mache ich nicht, also kenne ich mich damit auch nicht aus - biggrin.gif - und kann mich auf interessantere Arbeiten konzentrieren tongue.gif

QUOTE
HEADERs, Browser Identification etc


Warum soll mich das interessieren? Daß solche Dinge keinen BufferOverflow erzeugen, darum müssen sich die Entwickler der Softwarepakete (NET, PHP, Apache, IIS) kümmern, ich muß die Patches einspielen. Ansonsten gilt dasselbe wie oben - als Parameter gespeicherter Prozeduren kann ich jeden Ausdruck übergeben.

Schleifenkonstruktion: Alle übergebenen Werte im Seitencode in eine DataRow schaufeln, damit sind die Datentypen überprüft und können sofort zurückgewiesen werden. Dann in einer ausgelagerten DLL aus dieser DataRow eine Liste von Parametern bauen und diese dem Prozeduraufruf zuordnen.


--------------------
Web-Anwendung 3.0: Ein Online-Kalender für Termine vieler Filialen.

server-daten: Web-Datenbanken als Online - CRM - Lösung.
Konzentrieren Sie sich auf Ihr Kerngeschäft - nutzen Sie eine schlanke, schnelle Online-Datenbank von verschiedenen Standorten.
Top
PMEmail PosterUsers Website
Top
 
PH
#9 Geschrieben am: Mo 11.02.2008, 12:34 (+01:48)
Report PostQuote Post

AyomRank 7
**************

Gruppe: Member (aktiv)
Beiträge: 1099
Mitglied seit: 29.08.2004


Mod_Security für Apache fängt mit der richtigen Konfiguration sehr viele Angriffe per POST und GET ab.
Top
PMEmail Poster
Top
 
Thema wird von 0 Benutzer(n) gelesen (0 Gäste und 0 anonyme Benutzer)
0 Mitglieder:
Trackback-Url: http://www.ayom.com/track/t/22924

Topic Options Reply to this topicStart new topicStart Poll

 


> Ähnliche Themen
Post-it Popup dominikh 155 3 Do 12.06.2008, 13:17
Datei per POST senden pl_90 402 8 Di 2.10.2007, 19:22
XML-POST mit fsockopen patrickswelt 291 6 Mo 20.08.2007, 20:00
Deutsche Post, Google Earth - Nischen Yannick 219 3 Sa 11.08.2007, 10:25
.net 2 Post requests hintereinander flirtratgeber 156 1 Mo 2.07.2007, 07:23
Post vom LKA :) japsa 747 13 Mo 7.05.2007, 08:14
PHP Adresse umwandeln in Variablen binder_or_at 339 3 Sa 5.05.2007, 16:42




Anzeige - [Interessiert an einer Anzeige?]



Anzeigen




cyon Webhosting



[Interessiert an einer Anzeige?]