sql injection?!
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
artikel
bekommen
bereich
code
datenbank
datum
eingabe
kumpel
legen
nehmen
raten
standard
strang
subjekt
tag
test
testen
text
url
vorteil
-
Hallo
ein tag/kumpel">kumpel von mir ist vor ein par tagen mit seiner seite online gegangen.
nun scheint die seite halbwechs viele user zu bekommen .
das problem ist das die user sehr viele variablen ändern können und die seite nicht gegen sql injection geschützt ist.
hat jemand nen guten schutz und ne kleine erklärung wie mysql injection funktioniert?
LG:christian1603 -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Das steht eigentlich alles sehr schön erklärt in Wikipedia
-
cookies schrieb:
mysql_real_escape_string()
und ich kann dir nur raten, die Seite sofort offline zu nehmen, bis das völlig sicher ist.
wie genau muss das eingebaut werden -
Wenn du z.B.:
SELECT author, subjekt, text FROM artikel WHERE ID=$_GET['test']
musst du:
$_GET['test'] = mysql_real_escape_string($_GET['test']); SELECT author, subjekt, text FROM artikel WHERE ID=$_GET['test']
Wenn dein Kumpel aber eine Seite hat, dann müsste er das eigentlich auch wissen.
-
man muss doch so alle veränderbaren variablen ändern oder nur $_Get['']; variablen?
und hast du mal nen kleinen befahl um das zu testen? -
Du musst halt darauf achten, dass die vom Browser übergeben Daten keine SQL-Anfragen manipulieren können. Am einfachsten geht das indem du die entsprechenden $_POST und $_GET Daten mit mysql_real_escape_string() bearbeitest.
-
Grundsätzlich muss jede Benutzereingabe geprüft werden bevor sie in irgend einer Weise in die Datenbank geschrieben wird. Sprich keine $_GET und $_POST Eingaben dürfen ungeprüft in die Datenbank. Das gillt für alle Bereiche, somit auch Bereiche die normale User nicht zu sehen bekommen.
Für meine Projekte verwende ich die MySQLi Klasse, die ich nur Jeden ans Herz legen kann, da sie die Standard MySQL Funktion inteligent erweitert und Vieles vereinfach und sicherer mach. Vorausgesetzt man verwendet sie richtig. Ein passendes Tutorial bezüglich der MySQLi-Klasse findet man im QNET Tutorial, das viele Praxis-Beispiele hat und sehr Umfangreich ist. Aber man kann es in ein paar Tagen schaffen sich durch alle Kapitel zu arbeiten. -
Da war eigentlich ein ganz nettes Thema dazu, aber nein, mit der Lima Suche kann ich das nicht finden, obwohl ich den genauen Titel noch weiß ... (Wie wärs mal mit " "?!?)
@strange: Im Quakenet hab ich nichts zu gefunden... kannst du mal kurz sagen, welche Vorteile du in der MySQLi-Klasse siehst?
€: Oh habs, seh schon, sie haben das ganze Tuts auf mysqli umgestellt :(
Beitrag zuletzt geändert: 3.5.2009 9:57:07 von nikic -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage