• twitter image
  • facebook image
  • youtube image
  • linkedin image
Language: CMS Made Simple Czech CMS Made Simple France CMS Made Simple Spain CMS Made Simple Hungary CMS Made Simple Russia CMS Made Simple Netherlands

All times are UTC




Post new topic Reply to topic  [ 3 posts ] 
Author Message
 Post subject: Seitenverwaltung und Menügenerierung mit SQL Bäumen und Sicherheit
PostPosted: Fri Jan 13, 2006 10:53 am 
Bei meinen eigenen CMS mach ich das schon immer - die Seitenverwaltung und darauf basierend die Menügenerierung mit SQL Bäumen (auch Nested Sets genannt).

Wer aus der traditionellen Programmierung kommt, kennt das z.B. als mehrfach verkettete Liste.

Mit einer relationalen Datenbank im Hintergrund ist die Realisierung sehr einfach - praktisch im Level unbegrenzt und bei der täglich Arbeit sehr sehr schnell und wenn die Datenbank Transaktionen und Rollback unterstützt (wie Mysql) , dann ist das auch eine sehr sichere Sache.

Die hier bei der CMS aktuell verwendete Methode (hierarchy als Stichwort) ist denkbar primitiv und versucht dieses  durch eine enfache Nachbildung auf Stringebene zu ersetzen, was ja auch klappt.

Ich möchte aber nicht sehen,was passiert, wenn tatsächlich mal 10 User gleichzeitig an den Inhalten
etwas ändern  - ich kann aus dem jetzigen Quelltext nichts entnehmen, was die sichere Funktion gewährleistet - ich würde daher eher ein heilloses Durcheinander vermuten.

Ich möchte daher anregen, dass die Developer sich darum kümmern - da ist diese CMS zu simple.

In dem Zusammenhang möchte ich auch einmal auf das primitive Niveau was Sicherheit betrifft bei der Verarbeitung (Einfügen, Updaten etc) von Rechten, Sitepreferences etc .  hinweisen.

So werden nach wie vor bei einer Rechtevergabe alle Rechte gelöscht um danach alle Rechte neu einzutragen - geht da etwas in die Hosen , klemmt die Säge aber mächtig.


Top
  
 
 Post subject: Beispiel zum Thema Datensicherheit
PostPosted: Fri Jan 13, 2006 12:38 pm 
Hier einmal die aktuelle Durchführung einer Änderung der Gruppenrechte:

$query = "DELETE FROM ".cms_db_prefix()."user_groups WHERE group_id = ?";
$result = $db->Execute($query, array($group_id));

// Erst alles einmal weg hauen

foreach ($_POST as $key=>$value)
{
if (strpos($key,"user-") == 0 && strpos($key,"user-") !== false)
{
$query = "INSERT INTO ".cms_db_prefix()."user_groups (group_id, user_id, create_date, modified_date) VALUES (".$db->qstr($group_id).", ".$db->qstr(substr($key,5)).", '".$db->DBTimeStamp(time())."', '".$db->DBTimeStamp(time())."')";
// Und dann neu eintragen

$result = $db->Execute($query);
}
}

Geht dabei etwas in die Hosen, dann sind die Gruppenrechte weg und damit verbunden, kann es, wenn es einen selbst betrifft zur vollständigen Aussperrung kommen.
.................
Sind da mehrere Administratoren oder allgemein User vorhanden, die gleichzeitig in einem Bereich aktiv werden, ist eine Katastrophe höchst wahrscheinlich.
.................

Die Schlüsselwörter TRANSACTION oder ROLLBACK sind nur im Adodb - Source zu finden und in keinem Source der CMS selbst.
Das gilt ebenfalls für das Schlüsselwort LOCK im Zusammenhang mit der Datenbank.
Mit anderen Worten, die Möglichkeiten der unterstützen Datenbanksysteme werden bestenfalls angekratzt im Zusammenhang mit Sicherheit der Transaktionen wird rein nichts unternommen.


Top
  
 
 Post subject: Nested Set  [SOLVED]
PostPosted: Fri Jan 13, 2006 2:34 pm 
Ein anschauliches Beispiel zur Realisierung von Nested Sets kann man hier sehen (ich finde die Ausführung rcht anschaulich).

http://www.klempert.de/php/nested_sets/demo/index.php

Wenn ein Developer keine Ahnung davon hat, was ich meine kann er es hier nicht nur ansehen, sondern sich auch mal etwas Code zum probieren holen.


Top
  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 3 posts ] 

All times are UTC


Who is online

Users browsing this forum: No registered users


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
A2 Hosting