Benutzername:   Noch nicht registriert?
Passwort:   Passwort vergessen?
iB Code Einmal klicken um den Tag zu öffnen, nochmal klicken zum Schliessen

Top Smilies
Beitrag

HTML ist on für dieses Forum

IkonCode ist on für dieses Forum

SMILIES LEGENDE ansehen

Beitragsoptionen

Möchten Sie Ihre Signatur hinzufügen?
Wollen Sie per Email über Antworten informiert werden?
Wollen Sie Emoticons in Ihrem Beitrag aktivieren?
 

Beitragsrückblick für (die neuesten Beiträge zuerst)
wakko0816 Erstellt: 20:11 am 22. Juni 2011

Doch interessehalber, was macht man denn sonst noch außer Strings escapen?

"mysql_real_escape_string" ist schon mal ein guter Anfang,
damit ist man dann zumindest für die MySQL Verbindung
auf der sicheren Seite. Ob das Ding aber auch HTML oder Javascript
zuverlässig entschärft ist aber eine andere Frage.
Der Joomla-eigene DB-Layer macht vermutlich noch ein paar
Sachen mehr, als einfach nur einzelne kritische Zeichen zu Escapen,
deshalb sollte der die erste Wahl sein.
GenialOmaT Erstellt: 11:10 am 22. Juni 2011
Ja diese API gibt es tatsächlich, nur hab ich erstmal den Weg gewählt, den ich am schnellsten umsetzen konnte.. Mal sehen wie ichs mache, werd wohl versuchen das über Joomla zu realisieren.. Doch interessehalber, was macht man denn sonst noch außer Strings escapen?
wakko0816 Erstellt: 21:12 am 21. Juni 2011
Joomla hat höchstwahrscheinlich nen DB-Abstraktions-Layer, der
(hoffentlich) einigermassen sicher sein sollte. Schau mal in den
Joomla-Code, ob Du da was findest. Vermutlich gibt es sogar ne
interne Joomla-API, mit der man User anlegen kann. Also das sollte
in jedem Fall die erstere Wahl sein, bevor man da am CMS vorbei in
der DB rumwurschtelt. Strings escapen alleine ist in der Regel nicht ausreichend. Da sollte man schon mehr machen.
GenialOmaT Erstellt: 18:48 am 21. Juni 2011
Nabend allerseits!

Habe mir mal ein kleines Script geschrieben, um bei Joomla automatisch einen Benutzer anzulegen, aufgerufen wird das Skript über ein Batch Skript.. Jetzt habe ich mal bei Wikipedia ein wenig über SQL Injection gelesen, was ja theoretisch möglich sein dürfte.. Bin mir aber nicht ganz sicher, wie ich das Skript am besten absichere, bei Wikipedia sind zwar Beispiele für PHP aber der Satz:

"Ab PHP 5.1 sollten PHP Data Objects für Datenbankabfragen verwendet werden."

macht mich ein wenig stutzig, heißt dass das ich den DB Zugriff grundsätzlich anders realisieren sollte als jetzt der Fall?

Wäre cool, wenn mir jemand ein paar Tipps geben kann

Code
<?
$secret = "secret";
if($_GET["s"]!=$secret)
  {
  echo "<meta http-equiv='refresh' content='3;URL=http://www.domain.de'>";
  exit;
  }
?>

<?
$name = $_GET["n"];
$user = $_GET["u"];
$pw = $_GET["p"];
$mail = $_GET["m"];  

$salt = md5(mt_rand());

$crypt = md5($pw.$salt);
$password = $crypt.':'.$salt;

$verbindung = mysql_connect("localhost", "db" , "pw")
or die("Verbindung zur Datenbank konnte nicht hergestellt werden");
mysql_select_db("db") or die ("Datenbank konnte nicht ausgewählt werden");

mysql_query("INSERT INTO jos_users( name, username, password, email, usertype, gid ) VALUES( '$name', '$user', '$password', '$mail', 'Registered', 18 )");
mysql_query("INSERT INTO jos_core_acl_aro( section_value, value ) VALUES ( 'users', LAST_INSERT_ID() )");
mysql_query("INSERT INTO jos_core_acl_groups_aro_map( group_id, aro_id ) VALUES ( 18, LAST_INSERT_ID() )");

echo "Benutzer angelegt"

?>


Edit:

Folgendes habe ich jetzt angepasst:

Code
mysql_query("INSERT INTO jos_users( name, username, password, email, usertype, gid ) VALUES( 'mysql_real_escape_string($name)', 'mysql_real_escape_string($user)', 'mysql_real_escape_string($password)', 'mysql_real_escape_string($mail)', 'Registered', 18 )");


Reicht das schon?

(Geändert von GenialOmaT um 19:05 am Juni 21, 2011)
×