Website auf Injections checken

02/11/2014 17:13 lnqlorlouz#1
Hallo,

wollte mal fragen ob mir einer meine Homepage auf SQL-Injections checken kann. Oder auf andere kritische Fehler, die einen Datenbank-Zugriff gewähren könnten.
[Only registered and activated users can see links. Click Here To Register...]

Und gibt es Methoden dies zu verhindern? Sich mehr abzusichern? Gibt es Methoden Injections zu 100% nicht zuzulassen?

Grüße :p
02/11/2014 17:15 tolio#2
Alle Nutzereingaben verifizieren, ALLE! sowie Prepared Statements.
02/11/2014 17:20 lnqlorlouz#3
Quote:
Originally Posted by tolio View Post
Alle Nutzereingaben verifizieren, ALLE! sowie Prepared Statements.
Wie meinst du das? Bin noch nicht so weit mit PHP. Meinst du "loggen"? Oder so etwas wie ein Captcha?
02/11/2014 17:27 tolio#4
Kommt immer drauf an was genau du machen willst
Wenn möglich ist es das beste mit Whitelists zu arbeiten.
Kleines bsp. du willst nen login machen. Dann brech sofort ab sobald nen Zeichen außer Buchstaben und Zahlen vorkommen.

Aber wie gesagt kommt extrem drauf an was du machen willst ob das sich lohnt oder nicht.
02/11/2014 21:26 MrDami123#5
Hol dir BackTrack oder die neuere Variante und hau alle Tools die mit Servern und Webseiten zutun haben über deine Webseite.

Edit:
Musst ggf. deinen Serveranbieter fragen.
02/11/2014 23:33 .SkyneT.#6
Quote:
Originally Posted by MrDami123 View Post
Hol dir BackTrack oder die neuere Variante und hau alle Tools die mit Servern und Webseiten zutun haben über deine Webseite.

Edit:
Musst ggf. deinen Serveranbieter fragen.
Ein leicher overkill, da die Tools auch richtig bedient werden wollen oder ?

Ich würde dir etwas automatisiertes, wie zb [Only registered and activated users can see links. Click Here To Register...] empfehlen.
02/13/2014 23:02 xEncounter#7
Alle $_POST Daten über mysql_real_escape_string sichern.

Sowie strip_tags verwenden. :)
02/13/2014 23:09 tolio#8
^ get daten nicht zu überprüfen ist genauso fatal oder wie auch immer sonst daten reinkommen, zb cookies etc
02/14/2014 11:10 Coniesan#9
Naja vielleicht hilfts ja:
Ich hab bei mir immer so ne function (oder so in der Art), mit der ich prüfe, ob eine Eingabe erlaubt ist, oder nicht (hier nicht Objekt orientiert):
PHP Code:
/********************
**     Function    **
********************/
function checkForbidden($value) {
    
$checkit preg_match("/^[^!\"\/?*':<>[:space:]]+$/",$value);
    if(
$checkit) return true;
    else return 
false;
}

/********************
**        Query    **
********************/
if(checkForbidden($_POST['input'])!=true)
{
    echo 
"Sorry your string isn't valid";
} else {
    echo 
"Your string is vald!";

PS: mysql_real_escape_sting ist veraltet....
02/14/2014 13:31 lnqlorlouz#10
Quote:
Originally Posted by Coniesan View Post
Naja vielleicht hilfts ja:
Ich hab bei mir immer so ne function (oder so in der Art), mit der ich prüfe, ob eine Eingabe erlaubt ist, oder nicht (hier nicht Objekt orientiert):
PHP Code:
/********************
**     Function    **
********************/
function checkForbidden($value) {
    
$checkit preg_match("/^[^!\"\/?*':<>[:space:]]+$/",$value);
    if(
$checkit) return true;
    else return 
false;
}

/********************
**        Query    **
********************/
if(checkForbidden($_POST['input'])!=true)
{
    echo 
"Sorry your string isn't valid";
} else {
    echo 
"Your string is vald!";

PS: mysql_real_escape_sting ist veraltet....
Danke werd's demnächst mal probieren. :)
02/15/2014 00:31 Damono#11
Habe mal eben mit Havij Free gescannt, gegen die ganz kleinen Kiddies biste dann schon mal abgesichert:

Quote:
Havij 1.15 Free!
You are using the Free version of Havij which is limited in some features, Please purchase the commerical version at [Only registered and activated users can see links. Click Here To Register...]
Analyzing [Only registered and activated users can see links. Click Here To Register...]
Host IP: 84.201.35.203
Web Server: Apache
Powered-by: PleskLin
Keyword Found: Germany
I guess injection type is Integer?! If injection failed, retry with a manual keyword.
Can't find db server type! But maybe there be some chances! [-o<
Cannot find column count!
Testing for MySQL error based injection method
MySQL error based injection method cant be used!
MsSQL time based injection method can be used (4477ms delay)
Finding current data base
MsSQL Blind and time based are not supported in free version! Please purchase the commerical version of Havij at [Only registered and activated users can see links. Click Here To Register...]
Andere Software habe ich aktuell nicht auf diesem Rechner installiert, werde das morgen mal checken und mich noch mal melden!
02/16/2014 17:11 turk55#12
[Only registered and activated users can see links. Click Here To Register...]

[Only registered and activated users can see links. Click Here To Register...]