Datum auseinanderschneiden

Fragen zu allen Themen rund ums Programmieren außerhalb von phpBB können hier gestellt werden - auch zu anderen Programmiersprachen oder Software wie Webservern und Editoren.
bairan
Mitglied
Beiträge: 31
Registriert: 17.05.2006 18:13
Wohnort: Seengen
Kontaktdaten:

Beitrag 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.
Benutzeravatar
S2B
Ehemaliges Teammitglied
Beiträge: 3258
Registriert: 10.08.2004 22:48
Wohnort: Aachen
Kontaktdaten:

Beitrag 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!
Gruß, S2B
Keinen Support per ICQ/PM!
Hier kann man meine PHP-Skripte und meine MODs für phpBB runterladen.
bairan
Mitglied
Beiträge: 31
Registriert: 17.05.2006 18:13
Wohnort: Seengen
Kontaktdaten:

Beitrag 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.
Boecki91
Ehemaliges Teammitglied
Beiträge: 4744
Registriert: 18.06.2006 15:21

Beitrag 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
Standart: Am besten mit beiden Beinen auf dem Boden
Standardmäßig antworte ich nicht auf PMs
bairan
Mitglied
Beiträge: 31
Registriert: 17.05.2006 18:13
Wohnort: Seengen
Kontaktdaten:

Beitrag 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
Benutzeravatar
gn#36
Ehrenadmin
Beiträge: 9313
Registriert: 01.10.2006 16:20
Wohnort: Ganz in der Nähe...
Kontaktdaten:

Beitrag 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].
bairan
Mitglied
Beiträge: 31
Registriert: 17.05.2006 18:13
Wohnort: Seengen
Kontaktdaten:

Beitrag 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.
Benutzeravatar
gn#36
Ehrenadmin
Beiträge: 9313
Registriert: 01.10.2006 16:20
Wohnort: Ganz in der Nähe...
Kontaktdaten:

Beitrag 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.
Begegnungen mit dem Chaos sind fast unvermeidlich, Aber nicht katastrophal, solange man den Durchblick behält.
Übertreiben sollte man's im Forum aber nicht mit dem Chaos, denn da sollen ja andere durchblicken und nicht nur man selbst.
bairan
Mitglied
Beiträge: 31
Registriert: 17.05.2006 18:13
Wohnort: Seengen
Kontaktdaten:

Beitrag 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?
Benutzeravatar
gn#36
Ehrenadmin
Beiträge: 9313
Registriert: 01.10.2006 16:20
Wohnort: Ganz in der Nähe...
Kontaktdaten:

Beitrag 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.
Begegnungen mit dem Chaos sind fast unvermeidlich, Aber nicht katastrophal, solange man den Durchblick behält.
Übertreiben sollte man's im Forum aber nicht mit dem Chaos, denn da sollen ja andere durchblicken und nicht nur man selbst.
Antworten

Zurück zu „Coding & Technik“