Wie Daten sicher in eine Datenbank schreiben?

  • Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

unique24

Mitglied
28 September 2009
40
0
6
Hallo,

ich habe eine Javascript Kalender und die Daten demnach auch in JavaScript.

Nun muss ich aber Benutzereingaben zurück in die mysql Datenabnk schreiben.
Wie macht man das, das ein Spammer nicht meine Datenbank zumüllt?

Ich habe also ein Array in javascript:
Sende ich die Daten per ajax an ein php Script und dieses schreibt in die Datenbank, sieht man ja im Quelltext den php schreib Aufruf.

Wie also bekommt man die Daten sicher in die DB?
In der HTML eventuell php hinuzfügen?

Wäre nett wenn jemand ein Beispiel hätte.

Danke!
 

unique24

Mitglied
28 September 2009
40
0
6
Danke, das geht aber nicht.

Wie machen das andere mit JS? Oder kann ich nur php dafür nutzen?
Jeder der in den Quellcode reinschaut sieht ja den write php aufruf
 

jonas3344

Aktives Mitglied
25 Oktober 2019
129
37
28
38

CORS verhindert normalerweise, dass irgendjemand von irgendeiner URL Dein Server-Seitiges Script benutzen soll. Wenn der Webserver richtig konfiguriert ist und du es nicht explizit abgeschaltet hast.

Wenn du Angst hast, dass irgendjemand Dir Unsinn via Deine Webseite in die DB schreibt, da wird es keine andere Option geben als einen Login oder ein manuelles Prüfen der Daten. Oder du prüfst die Daten auf Plausabilität.
 

unique24

Mitglied
28 September 2009
40
0
6
Hallo nochmal,

habs mir nun angesehen ... das mit dem Login per php ist doch möglich .. aber wenn ein user eingeloggt ist, würde er den query doch wieder sehen.

Ich müsste das schreiben in den PHP Code legen .. aber die Übergabe an den PHP code sollte nicht gesehen werden oder nur durch die Seite selbst möglich sein.

Das Frontend ist HTML, gezeichnet wird der Kalender in JavaScript.

Danke!
 

unique24

Mitglied
28 September 2009
40
0
6

CORS verhindert normalerweise, dass irgendjemand von irgendeiner URL Dein Server-Seitiges Script benutzen soll. Wenn der Webserver richtig konfiguriert ist und du es nicht explizit abgeschaltet hast.

Wenn du Angst hast, dass irgendjemand Dir Unsinn via Deine Webseite in die DB schreibt, da wird es keine andere Option geben als einen Login oder ein manuelles Prüfen der Daten. Oder du prüfst die Daten auf Plausabilität.
Oh danke .. werd mich einlesen!
 

jonas3344

Aktives Mitglied
25 Oktober 2019
129
37
28
38
Ich kenen Deinen Code nicht, aber wenn du in JavaScript ein SQL zusammenstellst (was ich irgendwie herauslese), dass du dann mit PHP schreibst, das solltest du auf keinen Fall machen.
 

unique24

Mitglied
28 September 2009
40
0
6
Nein, ich habe in JavaScript ein Array das ich zurück in die DB schreiben muss.

Selbst wenn ich eine write.php aufrufe und per GET oder POST die Daten als JSON übergebe, sieht man im javascript ja die URL und Aufruf
 

Aaron3219

Senior HTML'ler
6 Oktober 2015
1.172
246
63
20
Wie immer gibt es 1000 verschiedene Wege, die zum Ziel führen. Hier mal einer ein wenig ausgeführt:

Wie macht man das, das ein Spammer nicht meine Datenbank zumüllt?
So etwas wirst du nicht wirklich verhindern können. Falls es für deinen Anwendungsfall passt, kann man natürlich etwas wie reCaptcha v3 einführen. In der neuesten Version muss der User nämlich keine "Bildchen" anklicken, stattdessen wird das Verhalten auf der Website analysiert und anhand dessen ein Schätzwert abgegeben, ob es sich hierbei um einen Bot oder User handelt. Ein Login wird keine wirkliche Hürde sein.

Vor jedem schreiben in die Datenbank müsstest du dann das reCaptcha prüfen. Sprich: Du solltest dir dann einen Proxy-Server aufsetzen, natürlich mit richtiger CORS-Konfiguration ;) (aber das solltest du ohnehin tun, wenn du mit Datenbanken arbeitest).

Wie also bekommt man die Daten sicher in die DB?
POST wäre eine Möglichkeit, aber eigentlich solltest du beim Schreiben in eine Datenbank einen PUT-Request schicken. Und ganz, ganz, ganz wichtig: Schau unbedingt, wie du SQL-Injection-Attacken verhinderst! Normalerweise würde man einfach ORM-packages benutzen, die das automatisch für dich machen. Falls du dir das noch nicht zutraust, benutze mindestens Prepared Statements und parametrisierte Queries!

Selbst wenn ich eine write.php aufrufe und per GET oder POST die Daten als JSON übergebe, sieht man im javascript ja die URL und Aufruf
Ich verstehe nicht, inwiefern das ein Problem ist. Das kann doch nur der Client, also Absender sehen und verschlüsselt ist das ganze eh durch HTTPS (sofern du ein SSL-Zertifikat hast und du solltest dich drum kümmern, dass du eins hast!).
 
Zuletzt bearbeitet:
Werbung:

Neueste Beiträge