Sicheres Script ?

Mitglied: WPFORGE

WPFORGE (Level 1) - Jetzt verbinden

17.12.2018, aktualisiert 21.12.2018, 3011 Aufrufe, 14 Kommentare, 1 Danke

Hallo,
ich habe meinen PHP code bisher eigentlich nicht für überragend gut, aber für sicher gehalten .
Nun scheinen wir aber irgendwo die Möglichkeit zur SQL Injection geschaffen zu haben.

Nachdem ich generell immer alle Eingaben für die Datenbank (sofern die Parameter nicht direkt aus der Datenbank kommen) immer gleich behandle, habe ich mal einen kleinen Beispielcode geschrieben.
Ich würde euch bitten, mal einen blick drauf zu werfen, ob jemandem hier ein möglicher Angriffsvektor auffällt.
Dass dieses Formular so gut für eine Bruteforceattacke geeignet ist, ist klar.

Danke schon mal für eure Antworten
Mitglied: Lochkartenstanzer
17.12.2018 um 19:06 Uhr
Moin,

Input sanitation ist Dein Stichwort, dnach dem Du googlen solltest.

lks
Bitte warten ..
Mitglied: WPFORGE
17.12.2018 um 19:16 Uhr
Aber genau das sollte doch eigentlich damit "$db->escape($_POST['user'])" erfolgen.
Bitte warten ..
Mitglied: certifiedit.net
17.12.2018 um 19:26 Uhr
Das wird nicht das ganze Programm sein, oder und ich glaube nur mit escape kommst du heute nicht mehr weit.

VG
Bitte warten ..
Mitglied: WPFORGE
17.12.2018 um 19:39 Uhr
Das ist ein Beispielscript.
Nachdem ggf. ja auch textfelder deren Inhalt nicht vorherehbar sind eingefügt werden müssen....
was ist sonst noch zu tun, um gegen SQL injections abzusichern?
Wie bringt man da sonst noch eine injection rein?
Bitte warten ..
Mitglied: WPFORGE
17.12.2018 um 20:00 Uhr
Wenn ich mir den Artikel so ansehe, müsste ja aber genau das dort gezeigt Beispiel mit dem escape erledigt sein.
Zumal die verwendete Klasse für mich zumindest den Eindruck erweckt, als würde hier mit prepared Statements gearbeitet.

Ich will meinen Code hier nicht sicher diskutieren. Mit ist nur nicht klar, wie der Angriffsvektor aussehen könnte.

Falls das hier zu sehr in die graue Richtung geht, bin ich auf für einen PN Tipp dankbar.
Bitte warten ..
Mitglied: certifiedit.net
17.12.2018 um 20:21 Uhr
Imho arbeiten die dort mit PDO.

Nimm dir ein gutes, aktuelles Buch dazu und arbeite dich da durch.
Bitte warten ..
Mitglied: WPFORGE
17.12.2018 um 22:14 Uhr
Das ist nicht wirklich hilfreich ;)
Wenn man mal "MysqliDb sql injection" googled findet man unter anderem:
https://github.com/ThingEngineer/PHP-MySQLi-Database-Class/issues/764

Es werden also prepared Statements benutzt.
Die Eingaben werden zusätzlich escaped und wes werden keine RAW Queries genutzt.

Trotzdem wird hier ziemlich generell in den Raum gestellt, das Verfahren so sei unsicher.
Allen scheint klar zu sein, wie eine solche Konstruktion anzugreifen ist. Nur mir nicht;)
Deshalb wäre ich für einen konkreten Tipp echt dankbar ;)
Bitte warten ..
Mitglied: certifiedit.net
17.12.2018 um 22:22 Uhr
Das ist auch nicht mal so schnell hingeschrieben und bringt "so" auch nichts.

Der beste Weg eine Anwendung sicher zu machen, ist zu verstehen, wie Sie anzugreifen ist. Da du nur irgendein Floskel Snippet geliefert hast, solltest du dich einlesen, wie man Webanwendungen angreift, um diese anschliessend zu härten.

VG
Bitte warten ..
Mitglied: EvilMoe
17.12.2018 um 23:03 Uhr
Hallo,

dasvon abgesehen, was die anderen bemängelt haben. Ist md5 schon lange keine sichere Methode mehr um passwörter "verschlüsselt" zu speichern: https://secure.php.net/manual/de/faq.passwords.php#faq.passwords.fasthas ...

Besser so machen: https://secure.php.net/manual/de/function.password-hash.php und Argon2 verwenden.

Gruß
Bitte warten ..
Mitglied: maretz
18.12.2018 um 07:52 Uhr
Moin,

du willst deinen Code nicht diskutieren. Oben fehlt die hälfte vom Code. Aber du willst einen KONKRETEN Tip haben? Cool, also sollen wir immer schön raten?
Bitte warten ..
Mitglied: WPFORGE
18.12.2018 um 21:51 Uhr
Nein ;)
Ich bin durchaus bereit den Code zu diskutieren....
Ja ich hätte gern einen konkreten Tipp.
Vom Prinzip her weiß ich schon, wie eine SQL injection funktioniert.

Aber mir fehlt die Vorstellung, wie das unter DEN Umständen noch passieren soll.
Bitte warten ..
Mitglied: TripleDouble
03.05.2019 um 13:07 Uhr
Hallo,

ohne auf den Sicherheitsaspekt eingehen zu wollen, aber in PHP erfolgt der Vergleich beim if mit '==' (siehe Zeile 43).

Gruß - TD
Bitte warten ..
Heiß diskutierte Inhalte
Windows 10
Windows 10 Pro mehrere RDP Benutzer
Jannik2018FrageWindows 1017 Kommentare

Hallo zusammen, kann ich bei Windows 10 Pro irgendwie Freischalten das 2 benutzer sich gleichzeitig per RDP verbinden können ...

CPU, RAM, Mainboards
Hardwareanforderung für Remote Desktop
gelöst Diddi-tbFrageCPU, RAM, Mainboards11 Kommentare

Hallo zusammen, ich brauche mal wieder einen Rat von euch. Mein Chef möchte gerne öfter von zu Hause aus ...

Batch & Shell
Infrarot Fernbedienung um in Netflix(Browser Version) etc. zu navigieren
SaiinoxFrageBatch & Shell10 Kommentare

Hallo Zusammen, ich bastle aktuell an einem kleinen Projekt. Idee des ganzen in folgende: Ich bin (notgedrungener)Vodafone Kunde, hab ...

Drucker und Scanner
HP LaserJet P3005n muss einmal täglich neu gestartet werden, damit er druckt
HelljumperFrageDrucker und Scanner10 Kommentare

Hallo, seit einiger Zeit macht der Drucker eines Kollegen Probleme: Und zwar geht es um einen HP LaserJet P3005n. ...

Multimedia & Zubehör
Anforderungen an Telefonanlage
jensgebkenFrageMultimedia & Zubehör10 Kommentare

Hallo Gemeinschaft, bin auf der Suche nach einer Telefonanlage die folgendes können muss: - unterschiedliche Ansagen (z.b. während der ...

Windows 10
Probleme mit SMB1-Netzwerklaufwerken seit Build 2004
cmiit97FrageWindows 109 Kommentare

Moin, ich habe seit dem ich auf einigen Computer das Update 2004 installiert habe, das gemappte Laufwerke die noch ...

Ähnliche Inhalte
Batch & Shell

Batch-Script für FTP-Zugang lässt sich nicht als Admin ausführen

gelöst BobstarletFrageBatch & Shell5 Kommentare

Hallo liebe Administrator-Community, ich habe folgendes Problem. Ich möchte gern (da meine Kollegen das unbedingt wünschen) ein FTP-Verzeichnis als ...

Cloud-Dienste

AZURE Script

pberlingerFrageCloud-Dienste1 Kommentar

Hallo Zusammen ich konnte mit Eurer Hilfe ein richtig cooles Script erstellen welches für mich via PowerShell Server in ...

Batch & Shell

Script anpassung

gelöst MultiplexyFrageBatch & Shell14 Kommentare

Hallo zusammen, Ich benötige mal eure Hilfe, es geht darum den folgenden Code anzupassen, das die letzten 2 Ordner ...

Batch & Shell

BATCH-Script

gelöst hipfzwirgelFrageBatch & Shell9 Kommentare

Hallo Batch-Profis, ich habe ein Batch-Script geschrieben mit welchem ich einen Treiber unattended installieren kann. Dazu benötige ich 5 ...

Windows 10

Script rename

gelöst Florian86FrageWindows 105 Kommentare

hallo ich möchte eine datei nach dem verschieben umbenennen und mit datum und zeit versehen. chcp 1252>nul set ue=ü ...

Batch & Shell

Linux script

gelöst ms1982FrageBatch & Shell2 Kommentare

Hallo zusammen, Ich bin auf der Suche nach einem passendem Lösungsansatz. Ich habe eine Liste mit Computernamen wie HOSTNAME1, ...

Berechtigungs- und IdentitätsmanagementBerechtigungs- und IdentitätsmanagementWebdienste und -serverWebdienste und -serverDatenbankenDatenbankenMonitoring & SupportMonitoring & SupportHybrid CloudHybrid CloudSmall Business ITSmall Business IT