in den letzten 2 Tagen wurde meine Datenbank in MSSQL 2x gelöscht durch eine Injection von SQLi. Habe mir viele TuT durchgelesen auf Google und verstehe da nur Bahnhof... Wollte fragen ob mir evtl. einer helfen könnte mich davor zu schützen. Da ich mich nicht wirklich sonderlich gut mit MSSQL auskenne suche ich hier Hilfe.
Gebe auch mein restliches e*G, ist zwar nich viel kann aber leider grade nicht mehr bieten...
Mein Tipp: Schau dir mal an.
Damit kannst du böse Sachen ausfiltern lassen, wenn du den richtigen Filter wählst.
Oder du schaust dir an.
Mit den Seiten, die ich hier gepostet habe, sollte es kein Problem sein, das auf deinen Script anzuwenden.
Wenn der User ";shutdown;--" eingibt, wird der SQL Server herrunter gefahren.
Sollte jetzt dieser aber als Hex Wert, sprich "0x3b73687574646f776e3b2d2d" übergeben werden, wird dieser von SQL als String angenommen und nicht mehr als Befehl.
Beispiel:
Code:
USE [MY_DATABASE]
UPDATE [MY_TABLE] SET [COLUMN] = 0x3b73687574646f776e3b2d2d WHERE [ID] = 0
Nun würde in der Spalte ";shutdown;--" auch als Text stehen.
Falls du für das ganze eine Klasse haben willst siehe hier:
Wieso soll man sich mit Hex rumschlagen?
Das ist einfacher als du denkst.
Über PHP einfach mit
Code:
"0x".bin2hex( $string )
und über SQL bsp. in Prozeduren via
Code:
-- Max Username length 16 chars
DECLARE @hex_user VARBINARY(32) = CAST( @user AS VARBINARY(32) )
Ich weiß nicht wo du da ein problem siehst. Wenn ich dadurch jeglichen injection kram aushebeln kann, ist es vollig akzeptabel.
In den Link oben den ich mit dazu gepackt habe ist eine SQL Klasse von mir welche schön alles via PHP absichert, dabei einfach mal auf die Escape funktion schauen. Eine einzige Zeile verhindert jeglische injections.
Wenn der User ";shutdown;--" eingibt, wird der SQL Server herrunter gefahren.
Sollte jetzt dieser aber als Hex Wert, sprich "0x3b73687574646f776e3b2d2d" übergeben werden, wird dieser von SQL als String angenommen und nicht mehr als Befehl.
Beispiel:
Code:
USE [MY_DATABASE]
UPDATE [MY_TABLE] SET [COLUMN] = 0x3b73687574646f776e3b2d2d WHERE [ID] = 0
Nun würde in der Spalte ";shutdown;--" auch als Text stehen.
Falls du für das ganze eine Klasse haben willst siehe hier:
Unsinn. One4All Lösungen (bis auf Prepared Statements) gibt es nicht.
Alles kurz und klein escapen ist selten sinnvoll. Stattdessen sollte man den Input kontextgerecht validieren.
Und ich persönlich kann hex nicht im Kopf zu ascii umrechnen, weshalb mir ein spontaner Blick in die db durch so eine "Lösung" deutlich erschwert würde.
Und vergessen wir mal nicht die unnötige ~Verdopplung des Speicherbedarfs.
Quote:
Originally Posted by Sedrika
Ich weiß nicht wo du da ein problem siehst. Wenn ich dadurch jeglichen injection kram aushebeln kann, ist es vollig akzeptabel.
In den Link oben den ich mit dazu gepackt habe ist eine SQL Klasse von mir welche schön alles via PHP absichert, dabei einfach mal auf die Escape funktion schauen. Eine einzige Zeile verhindert jeglische injections.
IP Bann verhindern 04/10/2012 - General Gaming Discussion - 7 Replies Hey leute bräuchte schnell mal paar infos :D
was muss ich alles tun damit das meine feste ip nicht gebannt werden kann.
Reicht es wenn ich über einen proxy spiele? und welches proxy programm?
und ein besonderer proxy? oder muss ich noch mehr tun?
Bräuchte einfach mal paar infos dazu ;)
Danke schon mal für die antworten :)
Shutdown 100% verhindern? 07/07/2011 - Metin2 Private Server - 8 Replies hallo , wie verhindere ich 100% ein shutdown ?
Mein server hat /shutdown aus der gamefile entnommen , also der code ist dies nicht möglich.
Ebendso ist das api toll gefixxt , was kann ich noch tun?