WebWork Magazin - Webseiten erstellen lassen, Online Medien, html

Webhoster, Webhosting Provider und Domain registrieren

Home | Registrieren | Einloggen | Suchen | Aktuelles | GSL-Webservice | Suleitec Webhosting
Reparatur-Forum | Elektro forum | Ersatzteilshop Haushalt und Elektronik


Homepage und Webhosting-Forum

Kunden helfen Kunden - Hier geht es um die Webhosting Tarife, Domain-Angebote und Services vom Webhoster Suleitec.de - Internet-Domain bestellen


Forum » Webhoster Suleitec.de - Domain, Support und Registrierung » Mysql-User » Antworten
Benutzername:
Passwort: Passwort vergessen?
Inhalt der Nachricht: Fett | Kursiv | Unterstrichen | Link | Bild | Smiley | Zitat | Zentriert | Quellcode| Kleiner Text
Optionen: Emailbenachrichtigung bei Antworten
 

Mysql-User
von Adrian
Alle Benutzereingaben in Queries mit addslashes() entschärfen.
Dann ist SQL injection nicht mehr möglich.

Um doppeltes addslashes zu vermeiden, sollte man noch das da am Anfang von den Scripts einbauen:
1: 
2: 
3: 
4: 
5: 
6: 
7: 
8: 
9: 
10: 
11: 
12: 
13: 
14: 
15: 
16: 
17: 
18:
function stripslashes_array(&$array)
{
 reset($array);
 while(list($key,$val)=each($array))
 {
  if(is_string($val)) $array[$key]=stripslashes($val);
  elseif(is_array($val)) $array[$key]=stripslashes_array($val);
 }
 return $array;
}

if (get_magic_quotes_gpc())
{
  if(is_array($_REQUEST)) $_REQUEST=stripslashes_array($_REQUEST);
  if(is_array($_POST)) $_POST=stripslashes_array($_POST);
  if(is_array($_GET)) $_GET=stripslashes_array($_GET);
  if(is_array($_COOKIE)) $_COOKIE=stripslashes_array($_COOKIE);
}
von MCM
Was meinst du damit??
von Adrian
wie wärs mit addslashes? ;)
von MCM
und z-B. "delete gb" ;)

Um ehrlich zusein, hab ich mir in meinem aktuellen script noch gar keine gedanken darüber gemacht, aber danke für den Hinweis, werde das mal berücksichtigen
von NetDrag
das problem ist ja nicht drop sondern ;drop.

einfacher ist das eben alles mit 2 usern
von MCM
hm, aber du kannst das Pronlem ja schlecht umgehen. Klra wenn nur Zahlen velangt sind, kannst du den Fehler abfangen, aber was ist bei Worten?? Du kannst doch nicht jeden Newsbeitrag löschen (ich nehm mal ein Newssystem an) wo das Wort drop drin vorkommt.
von NetDrag
MCM schrieb am 01.07.2003 18:55
1:
Select * from user where userid=Drop table user;


geht das überhaupt?? Ich meine das ist doch eine ungüliger Syntax und dmit auch ne ungültige Abfrage!!


Select * from user where userid= ; Drop table user;
strichpunkt nicht vergessen, der die erste Abfrage beendet
von NetDrag
m3rlin schrieb am 01.07.2003 18:28
NetDrag schrieb am 01.07.2003 16:15
ne nicht unbedingt dann wirt aus der Abfrage

Select * from user where userid=;Drop table user;

2 Abfragen und im schlimmsten Fall ist deine Tabelle weck


Sowas nennt sich "SQL-Injection" und zählt zu den Standard-Sicherheitslücken die in Scripten immer wieder auftauchen. In jeder PHP-FAQ steht, dass mann POST- oder GET-Variablen nicht ungeprüft weiter verarbeitet. Ein richtiger Programmier fängt sowas ganz einfach ab mit
1: 
2: 
3:
 
if(!is_numeric($user_id)) die ("User-ID ungültig.") ;

oder so ähnlich. Eine zweiten MySQL-User brauchst Du dafür nicht .


Ich weiß schon, nur sowas geht nicht immer. Vor allem bei komplexeren Datentypen.
Ich mach das normalerweise mit RegExpression.

Kann schon sein daß es so zu einem Syntaxfehler kommt, aber auf so ne art gehts. Ich weiß jetzt nicht auswendig ob ;Drop table user; oder ';drop table user; reicht.

Regelmäßige Backups kommt bei mir nicht in Frage. Ich hab nen Cluster, der der sich die daten aufteilt. Meine Datenbank ist im Moment ein halbes Jahr online und hat 15GB.

Ich wollte nur mal fragen ob I-net gibt der alle 2 anbietet, weil in einem Mail an mich, von einem User hier, diese Problematik aufkam.

Das das niemand versucht stimmt nciht. Ich hab auf meinem Honeypot sowas eingerichtet, ein formular das usereingaben annimmt und dann das die eingaben nur in eine Datei schreibt. Da waren schon ein paar drops dabei.
von michaelh
Vermutlich Syntax Fehler.
von MCM
1:
Select * from user where userid=Drop table user;


geht das überhaupt?? Ich meine das ist doch eine ungüliger Syntax und dmit auch ne ungültige Abfrage!!
von m3rlin
NetDrag schrieb am 01.07.2003 16:15
ne nicht unbedingt dann wirt aus der Abfrage

Select * from user where userid=;Drop table user;

2 Abfragen und im schlimmsten Fall ist deine Tabelle weck


Sowas nennt sich "SQL-Injection" und zählt zu den Standard-Sicherheitslücken die in Scripten immer wieder auftauchen. In jeder PHP-FAQ steht, dass mann POST- oder GET-Variablen nicht ungeprüft weiter verarbeitet. Ein richtiger Programmier fängt sowas ganz einfach ab mit
1: 
2: 
3:
 
if(!is_numeric($user_id)) die ("User-ID ungültig.") ;

oder so ähnlich. Eine zweiten MySQL-User brauchst Du dafür nicht .
von Rieke
Wie gesagt 1 Datenbank mit 1 User mit den üblichen Rechten und man kann sich einen Testaccount bestellen und es dort einfach einmal ausprobieren. Mehrere User für eine DB gibt es bei uns nicht.
von michaelh
Habs mal bei meinem Server asuprobiert. Also bei mir ist noch alles da. Tabelle hab ich für meine DB geändert. Wenn du dir aber solche Sorgen um deine db machst, dann erstell regelmäßig ein Backup. Was du befürchtest wird eh niemand versuchen. Außerdem weiß niemand wie deine Tabelle ode Datenbank heißt.
von NetDrag
ne nicht unbedingt dann wirt aus der Abfrage

Select * from user where userid=;Drop table user;

2 Abfragen und im schlimmsten Fall ist deine Tabelle weck
von michaelh
NACHTRAG: Oder er sucht wo der Eintrag 'Drop table user' ist.
von michaelh
Nix. Dann hast du einen Syntax Fehler.
von NetDrag
stell dir vor du hast ne query so in der Art:
Select * from user where userid=$userid;
wobei userid die Variable aus einem Formular ist.

Und was passiert wenn jemand in das Formular ;Drop table user; eingíbt?
von michaelh
Desshalb bin ich ja hier. Hatte genug von 1und1 Webhosting.
Nein es gibt keinen zweiten MySQL user. Ist aber meiner Ansicht nach auch nicht nötig. Vielleicht gibt dir Rieke ja einem was ich jedoch nicht glaube.

Habe ich aber schon gesagt.
von NetDrag
Ja schon klar, ich wollte aber wissen ob es bei I-net einen 2. User gibt.

Ich bin kein I-net User. Ich hab besondere Anforderungen
von michaelh
Von deinem MySQL User. Es gibt pro Account, pro DB nur einen Benutzer. Dessen Login und PW ist gleich dem deines Account/Unteraccount.
von NetDrag
Wovon redest du denn?
von michaelh
Also pro Account einen User. Du kannst aber das KAS auch für einen Unteraccount sperren. Die Pakete sind wie ein Verzeichnisbaum aufgebaut.
Deine Hauptdomain ist der höchste Account. In dem kannst du dann Unteraccounts einrichten. Also andere Domains und Subdomains. Der User darf mit seinem Account machen was er will.
von NetDrag
Ne es ging mir nicht um wieviele Datenbanken sondern um wie viele User.
Ich mein nen reinen Sicherheitsaspekt.

Ich hab normalerweise 2 User. Einen als Administrator der Delete, Drop, Update, usw. ausführen kann und einen normalen User der nur Selects bzw Inserts ausführen darf .

Mich hätte nur interessiert obs einen Provider gibt der das bietet.
von Rieke
Kommt auf den Tarif an.
Generell ist pro "Account" maximal 1 Datenbank möglich. Man kann sich jedoch eine Subdomain als eigenständigen Unteraccount anlegen z.b. subdomain.domainname.de

Im Kundenlogin dieser Subdomain kann man dann ebenfalls eine Datenbank aktivieren.
Für eigene Zwecke /eigene Verwendung ist es somit möglich sich mehrere Datenbanken an zulegen. Dies ist z.B. sinnvoll um Newssystemen, Gästebüchern, Foren jeweils eine eigene Datenbank zuzuweisen und nicht alle Tabellen aller Scripte durcheinander in der gleichen Datenbank zu verwalten.

Die Weitergabe/Nutzung der Datenbank an/durch dritte ist untersagt, ansonsten darf für jede Subdomain (ab Tarif Profi C) auch eine weitere Datenbank angelegt werden, solang es nicht maaaasslos übertrieben wird.

Mit welchen Rechten ? Ganz normale Userrechte, wie sie generell üblich sind. Das kann gerne mittels eines Testaccounts getestet werden.

Viele Grüße
Rieke
von NetDrag
Mal me Frage zu euren Angeboten Rieke:

Wieviele Mysql-user bekommt man bei euren Angeboten?
Und mit welchen Rechten?


---
We are born wet, naked and hungry, then things got worse!

Nach oben