• Hallo liebe Userinnen und User,

    nach bereits längeren Planungen und Vorbereitungen sind wir nun von vBulletin auf Xenforo umgestiegen. Die Umstellung musste leider aufgrund der Serverprobleme der letzten Tage notgedrungen vorverlegt werden. Das neue Forum ist soweit voll funktionsfähig, allerdings sind noch nicht alle der gewohnten Funktionen vorhanden. Nach Möglichkeit werden wir sie in den nächsten Wochen nachrüsten. Dafür sollte es nun einige der Probleme lösen, die wir in den letzten Tagen, Wochen und Monaten hatten. Auch der Server ist nun potenter als bei unserem alten Hoster, wodurch wir nun langfristig den Tank mit Bytes vollgetankt haben.

    Anfangs mag die neue Boardsoftware etwas ungewohnt sein, aber man findet sich recht schnell ein. Wir wissen, dass ihr alle Gewohnheitstiere seid, aber gebt dem neuen Board eine Chance.
    Sollte etwas der neuen oder auch gewohnten Funktionen unklar sein, könnt ihr den "Wo issn da der Button zu"-Thread im Feedback nutzen. Bugs meldet ihr bitte im Bugtracker, es wird sicher welche geben die uns noch nicht aufgefallen sind. Ich werde das dann versuchen, halbwegs im Startbeitrag übersichtlich zu halten, was an Arbeit noch aussteht.

    Neu ist, dass die Boardsoftware deutlich besser für Mobiltelefone und diverse Endgeräte geeignet ist und nun auch im mobilen Style alle Funktionen verfügbar sind. Am Desktop findet ihr oben rechts sowohl den Umschalter zwischen hellem und dunklem Style. Am Handy ist der Hell-/Dunkelschalter am Ende der Seite. Damit sollte zukünftig jeder sein Board so konfigurieren können, wie es ihm am liebsten ist.


    Die restlichen Funktionen sollten eigentlich soweit wie gewohnt funktionieren. Einfach mal ein wenig damit spielen oder bei Unklarheiten im Thread nachfragen. Viel Spaß im ngb 2.0.

mysqli - Was muss in Sachen Sicherheit bedacht werden?

Cyperfriend

Der ohne Avatar

Registriert
14 Juli 2013
Beiträge
1.123
Ich fange gerade mit mysqli an und habe in diesem Zusammenhang gelesen, dass mysql_real_escape_string als veraltet markiert ist und auf mysqli verwiesen wird (Link)

Jetzt frage ich mich, welche Sicherheitsvorkehrungen getroffen werden müssen, wenn man Datenbankeinträge tätigen will. Reicht es einfach die Daten mittels mysqli zu übertragen oder gibt es neue Befehle die man voranstellen muss?
 

musv

Bekannter NGBler

Registriert
15 Juli 2013
Beiträge
3.458
Ort
/dev/null
Bin jetzt schon 6 Jahre aus dem Thema raus. Aber damals hatte ich auch schon mysqli mit Prepared Statements verwendet. Stored procedures kannte ich damals noch nicht.

mysql_real_escape_string war damals ein beliebter Workaround zur Unterbindung von SQL-Injections. Gerade im Gulli-Board wurde das Kommando immer mit Vehemenz empfohlen. Allerdings war das Kommando schon damals eine dreckige Lösung. Prepared Statements und Stored Procedures sind die richtige Lösung.

Alternativ kannst du auch auf andere Datenbanken gehen, z.B. MongoDB. Dort speicherst du ganze Objekte in der Datenbank anstatt Tabellen zu basteln.
 

Yash

Neu angemeldet

Registriert
9 Nov. 2015
Beiträge
7
Ich bin kein Webentwickler und vor allem kein Datenbankexperte. Aber ich bin ein bisschen im Thema drin, da ich oft am Tisch bei den Diskussionen sitze :)

Was auf jeden Fall wichtig ist: Jede, also wirklich JEDE Benutzereingabe auf Gültigkeit überprüfen. Das betrifft auch sowas wie Bilduploads und andere Daten, bei denen man erstmal nicht an SQL Injections denken würde. Beispiel:
http://www.golem.de/news/evil-jpegs-foto-upload-schleust-schadcode-ein-1504-113625.html
Da wurde Schadcode im Kommentarfeld eines JPGs mitgeschickt und da die Überprüfung ungenügend ist, wurde der Code ausgeführt.

Daher würde ich an deiner Stelle überall wo Benutzer etwas an den Server oder in die Datenbank schicken doppelt und dreifach überprüfen.
 

musv

Bekannter NGBler

Registriert
15 Juli 2013
Beiträge
3.458
Ort
/dev/null
Murray untersuchte zunächst, ob er eine ausführbare Datei mit der Endung JPG auf den Windows-Webserver hochladen konnte … Er platzierte Schadcode in das Kommentarfeld der Exif-Informationen in einer Jpeg-Datei. Dieser gab er wiederum die Endung aspx, wie sie bei Web Forms bei Microsofts Active Server Pages üblich sind. Der Webserver erkannte zwar das Jpeg als Bild, übersah aber die Dateiendung. Die Vorschaufunktion, die eigentlich das hochgeladene Bild anzeigen sollte, führte dann den Code in dem Kommentarfeld in Form einer Shell aus.

Ich will mich jetzt nicht zu weit aus dem Fenster lehnen. Aber wenn ein Webserver einen Exif-Kommentar eines Bildes ausführt, läuft da irgendwie was gewaltig schief. Gibt's den Exploit auch auf richtigen Webserverplattformen (Linux + Nginx, Apache, NodeJS, JavaEE-Geraffel)?
 

Rakorium-M

NGBler

Registriert
14 Juli 2013
Beiträge
413
@musv:
Der genannte Exploit ist nicht wirklich IIS/Asp-spezifisch. Mit genug Nachlässigkeit beim Coden kann sowas auch schnell in typischen PHP-Anwendungen oä. entstehen (hatte nicht sogar Joomla mal das gleiche Problem)?
Das Problem entsteht, wenn Webserver und Upload-Script verschiedene Methoden nutzen, um den Dateityp zu bestimmen (Script: Dateiformat-Header, Server: Dateiendung). Dann kannst du eine jpg-Datei in *.php umbenennen und hochladen (der Dateiinhalt bleibt ja gültiges Jpeg). Beim Abrufen der Datei interpretiert der Webserver diese dann als PHP-Script - steht dann bspw. in der Comment-Section ein "<?php... ", wird das eben ausgeführt.
Funktioniert auf Linux/Nginx/Apache/... wunderbar, bei JavaEE eher nicht (dort sind Code und Daten besser getrennt).
 
Oben