» Forum » Allgemein » HTML, PHP, SQL,... » Eingabe für die DB filtern
  Mitglieder   |   Gallery   |   FAQ's   |   Regeln

[ Anmelden zum schreiben ]

Eingabe für die DB filtern
Ahrtas
Mitglied
70 Beitragspunkte
Posts: 1095

User Pic

0 Mitglieder finden den Beitrag gut.

Merkliste 01.02.2012 - 12:57:35     Zitieren
Also ich erstelle gerade eine Art Joinus-Formular wo der User Daten eingeben kann und diese weiterverarbeitet werden.

Die Daten werden zum einen in die Datenbank gespeichert und zum anderen teilweise noch als eMail versendet.

Nun ist meine Frage mit welchen PHP-Funktionen ich diese Eingaben filtern kann? - z.B. wenn ein User mit böser Absicht einen Schadcode einbinden möchte das dieser herausgefiltert wird

Kann mir da wer weiterhelfen?^^


Gutes Design ist so wenig Design wie möglich.
WoW Rekrutierung für ilch | Skin-Maker
-saarlonz-
Moderator
81 Beitragspunkte
Posts: 1178

User Pic

0 Mitglieder finden den Beitrag gut.

Merkliste 01.02.2012 - 13:59:44     Zitieren
Thread in den HTML, PHP, SQL,... Bereich verschoben.




Lord|Schirmer
Administrator
823 Beitragspunkte
Posts: 4607

User Pic

1 Mitglieder finden den Beitrag gut.

Merkliste 01.02.2012 - 17:22:07     Zitieren
@Ahrtas ...die Funktion escape();

$zahl =  escape($_POST['zahl'], 'integer');
$zeichenkette =  escape($_POST['zeichenkette'], 'string');
$textfeld =  escape($_POST['textfeld'], 'textarea');


"In mir schlummert ein Genie, leider wacht es nicht auf!"

my portfolio | my community | important link
Mairu
Coder
128 Beitragspunkte
Posts: 12770

User Pic

0 Mitglieder finden den Beitrag gut.

Merkliste 01.02.2012 - 19:42:56     Zitieren
escape ist im übrigen eine Funktion von ilch, die u.a. mysql_escape_string bzw. mysql_real_escape_string, aber auch strip_tags im Falle von 'string' oder ein intval bei 'int'.
Damit schützt man sich vor SQL Injection, wenn man aber bestimmt Daten erwartet, kann man diese noch genauer validieren, dafür nutzt man meist reguläre Ausdrücke, aber das würde wohl jetzt zu weit führen, solltest du dir aber weitergehenden Coding mal ansehen.


Und auch immer mal ein Blick auf die FAQ werfen. | Mairus Ilchseite
Ahrtas
Mitglied
70 Beitragspunkte
Posts: 1095

User Pic

0 Mitglieder finden den Beitrag gut.

Merkliste 07.02.2012 - 01:18:48     Zitieren
also ich hab mich mal auf php.net über die Funktionen durchgelesen und laut php.net ist mysql_escape_string nicht mehr zu empfehlen und strip_tags könnte wenn ein html-code eingegeben wird unter umständen zu viel davon löschen

ich habe für das Modul was ich gerade programmiere die Variante von Schirmer genommen und mich einwenig an der news.php im verzeichnis inlcude/admin orientiert da es ja die gleiche Schreibweise wie im Beispiel von Schirmer ist


dieses escape-Beispiel ist ja jetzt im Backend im Einsatz wo man nur mit Adminrechte hinkommt - wie sieht es im frontend aus wo die Besucher was eingeben können (?) soll ich da auch mit escape filtern oder wieder anderst vorgehen?


Zuletzt modifiziert von Ahrtas am 07.02.2012 - 01:20:07


Gutes Design ist so wenig Design wie möglich.
WoW Rekrutierung für ilch | Skin-Maker
Mairu
Coder
128 Beitragspunkte
Posts: 12770

User Pic

0 Mitglieder finden den Beitrag gut.

Merkliste 07.02.2012 - 06:35:20     Zitieren
Die escape Funktion nutzt nur die von mir genannten Funktionen, solange du mit ilch arbeitest kannst du darauf zurück greifen, ansonsten würde man heute nicht mehr mit den mysql_??? Funktionen arbeiten, aber solange man das noch tut, sehe ich keinen Grund auf die escape_string Funktionen zurückzugreifen, aber ok mysql_escape_string ist deprecated, man soll also mysql_real_escape_string, da wird noch der Zeichensatz berücksichtigt.

Wie schon gesagt, bei allen Eingaben kann man die Daten validieren, also schauen, sind die Daten in einem erwarteten Format, dazu verwendet man meist reguläre Ausdrücke, du kannst dich aber auch nach fertigen Filter-/Validierungslösungen umschauen, im ilch Script wird bisher fast nie validiert Auslachen


Und auch immer mal ein Blick auf die FAQ werfen. | Mairus Ilchseite
Ahrtas
Mitglied
70 Beitragspunkte
Posts: 1095

User Pic

0 Mitglieder finden den Beitrag gut.

Merkliste 09.02.2012 - 23:02:01     Zitieren
Naja mir gehts darum weil ich an einem größeren Modul für ilch gerade arbeite was es später zum Download gibt - und bei diesem Modul können sich User "bewerben" sprich es werden Daten verarbeitet und gespeichert und teils auch per E-Mail versendet. Smilie


Gutes Design ist so wenig Design wie möglich.
WoW Rekrutierung für ilch | Skin-Maker
Sniper
Moderator
56 Beitragspunkte
Posts: 1420

User Pic

0 Mitglieder finden den Beitrag gut.

Merkliste 10.02.2012 - 10:12:54     Zitieren
Aber kein Bewerbung's Modul auf die Art oder www.ilch.de/downloads-show-1646.html wenn du möchtest darfst du dieses auch verwenden und ausbauen.
Ahrtas
Mitglied
70 Beitragspunkte
Posts: 1095

User Pic

0 Mitglieder finden den Beitrag gut.

Merkliste 10.02.2012 - 15:18:35     Zitieren
Lass dich überraschen Zwinker - nein spaß nicht so ein Modul - die Bewerbung ist eher ein kleiner teil von meinem Modul und ist nebensache, ich sollte es eher "Join Us"-funktion nennen.

Das Modul besteht aus drei Backend-Module und ist zu 1/3 fertig dauert also noch einwenig bis es fertig ist - so spektakulär wird es denke ich auch nicht werden, aber es wird nützlich sein - hoffe ich.^^


Gutes Design ist so wenig Design wie möglich.
WoW Rekrutierung für ilch | Skin-Maker
Sniper
Moderator
56 Beitragspunkte
Posts: 1420

User Pic

0 Mitglieder finden den Beitrag gut.

Merkliste 10.02.2012 - 15:23:24     Zitieren
Na dann Viel Erfolg
Ahrtas
Mitglied
70 Beitragspunkte
Posts: 1095

User Pic

0 Mitglieder finden den Beitrag gut.

Merkliste 14.04.2012 - 20:28:13     Zitieren
Zitat geschrieben von Lord|Schirmer

@Ahrtas ...die Funktion escape();

$zahl =  escape($_POST['zahl'], 'integer');
$zeichenkette =  escape($_POST['zeichenkette'], 'string');
$textfeld =  escape($_POST['textfeld'], 'textarea');



Wie sieht das aus wenn ich eine Datei uploade?
Wie muss es da aussehen??

$_FILES['deinedatei'] =  escape($_FILES['deinedatei'], 'WAS MUSS HIER HIN?');

...oder muss ich das anderst filtern?

Bei dem Upload handelt es sich ausschließlich um PNG-Dateien.


Gutes Design ist so wenig Design wie möglich.
WoW Rekrutierung für ilch | Skin-Maker
Mairu
Coder
128 Beitragspunkte
Posts: 12770

User Pic

0 Mitglieder finden den Beitrag gut.

Merkliste 15.04.2012 - 00:13:13     Zitieren
Wenns um den Dateinamen geht, sollte string ausreichen, um gegen SQL Injection vorzubeugen, allerdings könntest du den Namen auch auf andere Sachen überprüfen oder den mime type der Datei prüfen.


Und auch immer mal ein Blick auf die FAQ werfen. | Mairus Ilchseite
Ahrtas
Mitglied
70 Beitragspunkte
Posts: 1095

User Pic

0 Mitglieder finden den Beitrag gut.

Merkliste 15.04.2012 - 13:35:08     Zitieren
Zitat geschrieben von Mairu

Wenns um den Dateinamen geht, sollte string ausreichen, um gegen SQL Injection vorzubeugen, allerdings könntest du den Namen auch auf andere Sachen überprüfen oder den mime type der Datei prüfen.


Also im Moment prüft mein Script die Maße (Höhe und Breite in Pixel), die Speichergröße und den mime-type (image/png) der PNG-Datei.


Also ist folgendes inordnung gegen SQL-Injection?
$_FILES['deinedatei']['tmp_name'] = escape($_FILES['deinedatei']['tmp_name'], 'string');



Zuletzt modifiziert von Ahrtas am 15.04.2012 - 18:10:11


Gutes Design ist so wenig Design wie möglich.
WoW Rekrutierung für ilch | Skin-Maker
Mairu
Coder
128 Beitragspunkte
Posts: 12770

User Pic

0 Mitglieder finden den Beitrag gut.

Merkliste 15.04.2012 - 16:32:53     Zitieren
Ja.
Am Rande: tmp_name sollte auch in ' stehen.
Und um Verwirrung vorzubeugen, ist es sinnvoll das Ergebnis in einer anderen Variable zu speichern, so weiß man später auch, man arbeitet mit der escapten Variable.


Und auch immer mal ein Blick auf die FAQ werfen. | Mairus Ilchseite
Ahrtas
Mitglied
70 Beitragspunkte
Posts: 1095

User Pic

0 Mitglieder finden den Beitrag gut.

Merkliste 15.04.2012 - 18:11:33     Zitieren
Zitat geschrieben von Mairu

Ja.
Am Rande: tmp_name sollte auch in ' stehen.[..]

natürlich, habe ich oben vorhin übersehen - hab es ausgebessert Zwinker


Gutes Design ist so wenig Design wie möglich.
WoW Rekrutierung für ilch | Skin-Maker

[ Anmelden zum schreiben ]