Seite 2 von 3

Verfasst: 20.07.2008 17:43
von bairan
Boecki91 hat geschrieben:verstehe ich noch nicht so richtig.

Wie prüfst du denn die Eingabe?
Ich kann momentan alles eingeben und es wird nicht als fehlerhaft erkannt.

Du hast Folgendes Datum eingegeben: abcdefghijklmnop 16:45:22

Deine Eingabe ohne die Punkte: abdeghij164522

Deine Eingabe die von meinem Script umgekehrt worden ist: ghijdeab164522
Willst du mein Script zur überprüfung der Manuellen eingabe einsehen?
Ich habe in dieser Verison, nur die Ordung der Zahlen keine Überprüfung, doch wenn es dich interessiert werde ich sie auch dort noch einbauen.

Du kannst nix falsches eingeben, nur hier habe ich nur einen kleinen Teil des Scripts gepostet, ich habe eine ganze Überprüfung der eingegebenen Daten gemacht, auch wenn du einen Punkt am falschen ort hinsetzt, wird es so nicht eingetragen.

Ich bin noch zimlicher anfänger in PHP, wahrscheindlich muss ich das sowiso nocheinmal überdenken doch für den anfgang reicht es mir.

Verfasst: 20.07.2008 18:44
von S2B
h32Lg hat geschrieben:omg, Mach gleich ein Dropdownfeld mit verschiedenen Formaten zur Auswahl, dann brauchst du wenigstens keine Prüfung auf Injektionscode ^^
War das Ironie? Wenn nicht: Natürlich muss man auch Eingaben aus <select>-Feldern überprüfen!

Verfasst: 20.07.2008 19:13
von bairan
S2B hat geschrieben:
h32Lg hat geschrieben:omg, Mach gleich ein Dropdownfeld mit verschiedenen Formaten zur Auswahl, dann brauchst du wenigstens keine Prüfung auf Injektionscode ^^
War das Ironie? Wenn nicht: Natürlich muss man auch Eingaben aus <select>-Feldern überprüfen!
Sowiso will ich nicht irgendein Datum, wie es der User eingeben soll, er soll es so Eingeben wie verlangt, und wie hierzulande Standard ist. Wenn jeder Eingeben könnte wie er es eingeben soll würde es ja nur noch Komplizierter.

Verfasst: 21.07.2008 20:59
von Boecki91
bairain so war das nicht gemeint.

S2B und h32Lg meinen eine Angriffs MethodeSQL-Injektions
Diese Angriffe basieren hauptsächlich auf dem Ausnutzen des Codes, welcher ohne Bedenken auf die Sicherheit geschrieben wurde. Vertrauen Sie nie auf irgendeine Art von Input, speziell wenn er von der Clientseite kommt, selbst wenn er von einer Auswahlbox, einem versteckten Eingabefeld, oder einem Cookie kommt. Das erste Beispiel zeigt, dass solch eine untadelige Abfrage ein Disaster anrichten kann.
Noch mehr Sicherheit:
PHP-Sicherheit

Nun zu deinem Check:
Gerne sehe ich mir den Code an.

Ich habe bei mir noch einen Code gefunden der eigendlich das machen dürfte was du willst, anschauen kannst du Ihn dir, fragen stellen auch ;)
Bevor du den Code ausführst solltest du wissen was passieren wird :wink:

http://boecki.bo.funpic.de/source.php?file=time

Anschauen unter
http://boecki.bo.funpic.de/time.php

Verfasst: 22.07.2008 14:14
von bairan
Also so prüfe ich meine Eingabe, ob das Datum richtig eingegeben worden ist oder nicht, so alleinstehend ist das Script natürlich nicht lauffähig, eingebaut prüft es jedoch ob das Datum überhaupt möglich sein könnte.

Vorausgesetzt ist auch noch, das schon bei der Formulareingabe, also das Formular prüft ob nur Zahlen und Punkte daherkommen. Aus den Zahlen und Punkten kann ich dann filtern ob das Datum korrekt ist oder nicht.

Wenn du den Link möchtest um ein Laufendes Script mit desem Code zu Testen kannst du Fragen, ich möchte den Link nicht hier veröffentlichen.

Ach ja noch eine Frage an dich (Boecki91) wie stellst du dein code Farbig dar, also so wie hier (http://boecki.bo.funpic.de/source.php?file=time)?

mfg bairan

Code: Alles auswählen

Zu viel Code entfernt//gn#36

Verfasst: 22.07.2008 22:36
von gn#36
Du hast zuviel Code gepostet, was das Thema unnötig in die Länge zieht und unübersichtlich macht.
Es wäre besser die Datei bzw. den Code als .txt Datei abzuspeichern und dann hier einen Link zu posten - siehe auch KB:datei .

Bitte passe deinen Beitrag an, lies Dir den phpBB.de-Knigge und den Hinweis zur Fragestellung und Rechtschreibung durch und beachte diese zukünftig.

Deine Sicherung ist eher Fadenscheinig. Wenn statt einer Zahl ein String oder Buchstabe erkannt wird, dann ist das äquivalent zum Zahlenwert 0 Eine Prüfung mittels <= bringt also nichts um das zu verhindern. Du solltest einen Zahlenwert forcieren, zum Beispiel mittels [php:intval].

Verfasst: 22.07.2008 23:56
von bairan
Doch ich prüfe gerade bei eingabe des Formulars mit Java ob Text eingegeben wird oder nicht. Wenn Text eingegeben wird kann die eingabe nicht abgesendet werden, auch die Länge wird auf 10 begrenzt, also mann kann nicht mehr als 10 zahlen eingegeben.

Verfasst: 23.07.2008 01:03
von gn#36
Das bringt nichts. Ich schalte JavaScript einfach ab und kann dann entweder die Seite nicht benutzen oder eingeben und absenden was ich will. Clientseitige Absicherung ist immer unsicher. Egal wie gebe ich dem Angreifer die Möglichkeit die Daten zu manipulieren. Eine Datenabsicherung muss IMMER Serverseitig passieren. Clientseitige Absicherung kann man zur Erhöhung des Bedienkomforts verwenden (z.B. weil der User nicht noch mal alle Daten eingeben muss oder weil er die Fehlermeldung schneller erhält), aber nie um die Daten zu verifizieren.

Verfasst: 23.07.2008 01:06
von bairan
Aber was ich bis jetzt mit den Daten mache ist schon Serverseitig oder? Vorausgesetzt der User gibt jetzt nur Zahlen und Punkte ein, dann ist das eine Serverseitige überprüfung, ich müsste jezt nur noch prüfen ob der User auch wirklich nur Zahlen und Punkte eingibt, wenn ich das noch Prüfe, meinst du das Script ist sicher, oder muss ich da noch auf andere Sachen achten?

Verfasst: 23.07.2008 01:10
von gn#36
So genau habe ich es nicht angesehen bevor ich es gelöscht habe. Vermutlich kannst du dir den größten Teil sparen wenn du [php:intval] und ähnliches benutzt.