ERLEDIGT
NEIN
NEIN
ANTWORTEN
24
24
ZUGRIFFE
798
798
EMPFEHLEN
-
06.09.11 19:13 #1
- Registriert seit
- Jul 2011
- Ort
- in einer 32 Bit ALU
- Beiträge
- 63
Hallo liebe Community!
Im Moment arbeite ich gerade an einem PHP Projekt.
Wie ihr wahrscheinlich am Titel erkannt habt, geht es um eine eigene Forensoftware.
Ich hab da ein paar Fragen.
Ich fang jetzt mal von hinten an (also beim Endbenutzer). Mein Projekt soll unter die GPLv3. Allerdings tut sich bei mir die Frage auf wie kommerziele Forensoftwaren gesichert wird. Immerhin kosten die meistens über 50€. Und da kann ich es mir zu unserer Zeit nicht ganz vorstellen, das die ihre Software nur mit einer Lizens schützen. Da müsste doch nur einer es kaufen und könnte es gleich per USB Stick an alle seine Verwanten verschenken. Und das die so einen Zendverschlüssler verwenden kann ich auch nicht glauben... Hat jemand ne Idee wie die das machen, oder hat sogar so eine Software und weiß es? Nun rücken wir mal zum Teil ein paar Monate in die Zukunft, wo die zweite Version meiner Forensoftwae rauskommt. Allerdings kriegt das nicht jeder mit und arbeitet weiterhin mit einer veralteten Software, die wahrscheinlich auch noch Sicherheitslücken aufweist. Es währe doch schön, wenn im ACP so ne nette Shoutbox aufgeht die einem Ankündigt, das es eine Version gibt. Und Möglich sein muss es, immerhin macht es Wordpress auch
. Was haltet ihr von diesem Ansatz: Als erstes wird beim ersten AUfruf des ACPs durch einen Admin geprüft, ob fsockopen Aktiviert ist (oder gibt es ne bessere Idee verbindung mit einem Server aufzubauen?). Wenn ja, baut PHP mit meiner Seite http://www.entwicklerpages.de/ eine Verbindung auf und lädt sich eine txt runter, in der die Versionsnummer der Aktuellen Version steht. Ist die Nummer größer fügt PHP eine Shoutbox hinzu. Sollte fsockopen deaktieviert sein (á la Freehoster) soll die Abfrage Clientseitig gemacht werden. Wobei da das nächste Problem liegt: soweit ich wieß kommt das XMLHttpRequest Objekt (also Ajax) nicht mit verbindungen zu anderen Servern klar. Aus dem grund könnte ein Script von meinem Server aufgerufen werden (JS) das die Aktuelle Version beinhaltet und in eine Variable schreibt. Dannach prüft JS ob die Software alt ist. Was haltet ihr von diesem Ansatz?
Als nächstes springen wir mal wieder zurück in die Gegenwart und kommen zu dem Teil der auch in dem Titel steht: ein Paketsystem. Meine Forensoftware hat so ne Art statisches Paketsystem für die "Kernel" Klassen. Aber es wäre natürlich nicht schlecht, wenn es noch ein dynamisches gäbe. (Natürlich nicht so komplex wie das von WBBLite 2/WBB3) Allerdings scheitert das schon in der Planung. Denn mir ist keine Methode bekannt, in PHP eine Klasse zu erzeugen, ohne zu wissen, wie diese heißt. Eine Möglichkeit wäre, eine Indexierung eines Plugins/Paketes vorzunemen wenn es installiert wird und den Namen der Klasse in eine Datenbank zu schreiben. Allerdings gibt mir MySQL ja Strings zurück. Und ich kenne auch keine Methode, um eine Klasse mit einem String zu erzeugen/initialisieren. Beim schreiben dieses Textes komme ich allerdings auf eine andere Idee, die ihr mal bewerten könntet. Wobei ich mir garnicht sicher bin ob das funktioniert. In PHP gibt es ja auch so etwas wie Zeiger, z.B wenn ich bei einer Funktion ein Objekt einer Klasse übergebe und direkt mit dem Objekt arbeiten will, nicht mit einer Kopie. Allerdings ist da ja das Probelm, das auch wenn ich die Addresse (Oder was auch immer dann in einem solchen Zeiger steht) in eine DB schreibe, ich ja vorher ein Objekt der Klasse brauche. Besonders doof ist, das das Objekt ja nichtmal erhalten bleibt. Also Funktioniert das so auch nicht. Hat jemand da eine Idee?
Ich bin dankbar für jede Antwort. Besonders wichtig für mich ist die mit der Versionskontrolle.
Das Paketsystem ist eigentlich auch nicht für die erste Majorversion geplant gewesen. Wenn jemand gleich eine Superduper Lösung für mich hat baue ich es vieleicht gleich ein. ANsonsten kann ich immernoch es mit einer Minor/Majorversion Hinzufügen.
EntwicklerpagesGeändert von Entwicklerpages (06.09.11 um 19:28 Uhr) Grund: tutorials.de hat das funkt falsch verstanden...
-
Grüße,
also das mit den Updates habe ich mir auch schon des öfteren überlegt, jedoch noch nie umgesetzt, weshalb ich dir nur meine Idee mitteilen kann (zum Coden bin ich um die Uhrzeit iwie zu faul
).
Das ganze soll ja bestimmt auch nur eine authorisierte Person zu Gesicht bekommen, weshalb es sinnvoll ist, das Ganze in ein Admin-Panel einzubauen.
Dabei wird, beispielsweise bei der Anmeldung oder dergleichen, eine FTP-Verbindung zu einem Server aufgebaut, auf dem die Updates liegen bzw. die veränderten Dateien.
(Könnte man vllt. auch so machen, dass dort ne .txt mit ner Versionsnummer liegt und die mit der Versionsnummer der Config abgeglichen wird -> sollte ein Unterschied vorliegen, so wird das Update durchgeführt).
In wie weit das sicherheitstechnisch umzusetzen ist, ist jedoch wieder eine andere Frage über die ich mir noch keine Gedanken gemacht habe.
Ist auf jeden Fall erstmal meine Meinung dazu
Mfg, Alex
“The function of good software is to make the complex appear to be simple.” (Grady Booch)
“First, solve the problem. Then, write the code.” (John Johnson)
-
07.09.11 18:40 #3
- Registriert seit
- Jul 2011
- Ort
- in einer 32 Bit ALU
- Beiträge
- 63
Danke für die Antwort.
Das die Funktion sich im aadminpanel befinden soll, gab ich auch geplant gehapt. Und ich hab es oben auch hingeschrieben (ACP). Theoretisch wäre FTP ne Möglichkeit, die jedoch einige Probleme aufwirft. Zum einen hat nicht jeder FTP in php aktiviert. Besonders die Freehoster User hätten Probleme.
Zweites Problem: bei meinem Anbieter kann man nur zwei FTP Accounts erstellen.
Wobei der erste natürlich meiner ist. Ich bräuchte ja einen eigenen für diese Funktion, da der ACC ja keinne schreibrechte haben darf.
Trotzdem danke!
-
07.09.11 19:58 #4
- Registriert seit
- May 2006
- Ort
- There is no place like 127.0.0.1
- Beiträge
- 3.521
Wieder mal ein Anwendungsgebiet für phar.
Grüße
--
Qualität des Codes wird in WTF's/Min gemessen: Je mehr, desto schlechter der Code ;-)
-
08.09.11 19:26 #5
- Registriert seit
- Jul 2011
- Ort
- in einer 32 Bit ALU
- Beiträge
- 63
Tut mir leid, das Englisch der 7. Klasse auf ner Realschule plus eigene Kenntnisse haben nicht gereicht um dieses Dokument vollständig zu verstehen. Es sah so aus (und es standen gewisse Schlüsselwörter [tar] im Text) das Phar eine Möglichkeit ist (die scheinbar zum Standart gehört) so eine Art Archiv zu erstellen, in der dann eine PHP Anwendung ist. Da ich nicht alles verstanden hat wirft das bei mir ein paar Fragen auf:
Wie erstellt man solche Phar Archive? Ich hab davon was gelesen, das man daraus auch Tars machen kann, aber vorher muss wohl ein .phar da sein. Und vor allem: Ich vermute mal du (Saftmeister) hast mir Phar für meine Frage mit dem Plugin/Paketsystem vorgeschlagen. Das Plugins im gepackt verteilt werden könnten (Wie bei WBB) währe zwar nicht schlecht, allerdings wüsste ich auch da nicht, wie ich weiß wie die Klasse heißt, die icheinbinden soll. Und vorallem weiß ich nicht so ganz, wie ich dieser Klasse die Kontrolle über spezielle Punkte geben soll.
Gibt es irgendeine Möglichkeit einen String in eine Art Platzahlter umzuwandeln, mit dem ich dann ein Objekt einer Klasse erzeugen kann?
-
11.09.11 22:49 #6
- Registriert seit
- Jul 2011
- Ort
- in einer 32 Bit ALU
- Beiträge
- 63
Hat keiner ne Antwort für meine Fage?
-
12.09.11 11:24 #7
- Registriert seit
- May 2006
- Ort
- There is no place like 127.0.0.1
- Beiträge
- 3.521
Vielleicht verstehst du es auf Deutsch besser: http://web-union.de/157
Grüße
--
Qualität des Codes wird in WTF's/Min gemessen: Je mehr, desto schlechter der Code ;-)
-
14.09.11 20:41 #8
- Registriert seit
- Jul 2011
- Ort
- in einer 32 Bit ALU
- Beiträge
- 63
Danke!
Das half mir schon viel mehr weiter!
Theoretisch könnte man eine Infodatei in ein solches Ph(p)ar(chiv) eine index.php hineinschmeißen, die dannAblauf koiedieniert. Eine möglichkeit ein Objekt zu erstellen, von dem man die Klasse beim Schreiben des Code nicht kennt gibt es nicht, oder? Oder könnte man vielleicht JSON wie in JS Interpretieren, so das gleich ein Objekt entsteht?Wenn du ein Problem hast, was du nicht lösen kannst, frag auf tutorials.de.
Wenn man dir nur einen Anstoß an die Sache gibt, nimm ihn mit Freuden an und füre die folgende und wegweisende Zeile aus (nicht am Computer! ;-)):
Sei kreativ!
Meine Seite: http://www.entwicklerpages.de/
-
14.09.11 20:49 #9
- Registriert seit
- May 2006
- Ort
- There is no place like 127.0.0.1
- Beiträge
- 3.521
Du kannst Objekte aus Klassen erzeugen, die der PHP-Applikation durch includes bekannt sind, wenn du den Namen das Klasse als String angibst. Das kann man entweder über die sog. Reflection (professionellere Variante) oder den schnellen Weg erledigen:
Code php:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
class EineExistierendeUndBekannteKlasse { private $_eineVariable; public function __construct() { $this->_eineVariable = 'Hat einen Wert'; } public function getVariable() { return $this->_eineVariable; } } $meine_klasse_als_string = 'EineExistierendeUndBekannteKlasse'; $objekt = new $meine_klasse_als_string; echo $objekt->getVariable();
Wie gesagt, ich mach sowas über Reflection, denn genau dafür ist sie da.Geändert von saftmeister (14.09.11 um 20:51 Uhr) Grund: Etwas nachvollziehbarer Code
Grüße
--
Qualität des Codes wird in WTF's/Min gemessen: Je mehr, desto schlechter der Code ;-)
-
14.09.11 20:49 #10
Mit dem Schützen Mite dir doch nen Root Server und lass es dann von den Leuten die es wollen auf deiner Webseite speichern
xD so bekommt Theoretisch nie jemand die sache vor den Bildschirm
-
15.09.11 18:24 #11
- Registriert seit
- Jul 2011
- Ort
- in einer 32 Bit ALU
- Beiträge
- 63
@saftmeister:
Das funktioniert?! Muss ich gleich ausprobieren. Das mit Reflection hab ich nicht ganz verstanden, aber da das Pluginsystem am Anfang eh nur ein Special ist, danke ich die einfache Methode reicht. Sollte das Plugin nun die Forensoftware gut aufwerten (hängt ja alles davon ab, wie ich sie implementiere...) kann man ja immernoch die Profi-version nehmen.
@thehacker:
Theoretisch neu gute und einfache Idee. Allerdings bezweifle ich das Woltlab das so macht.
Ich werde die Software ja nun ehe unter die GPLv3 stellen, aber wenn man deine Idee weiterverarbeitet könnte es ein, wenn auch langsames, aber sicheres System beschreiben. Die Leute kaufen sich ne Lizens und geben gleich eine Domain an, auf der die Software dann Laufen wird. Wenn jemand die Seite nun aufruft, werden die Daten von einem mit dem Kauf erhaltenen Script von den Forensoftwareserver geladen. Das macht funktioniert z.B. mit fsockopen(); in PHP. Nachteil ist die Sache mit den Datenbanken. Entweder auf den Forenserver befinden sich alle Daten, was natürlich eine gute wenn auch Speicherverbrauchende Lösung darstellt. Andere Möglichkeit wäre, das man beim Kauf auch einen DB-Server mit DB, Username und Pw angibt. Das würde die ganze Sache noch verlangsamen, zweitens hätte ich niemals meine DB-Zugangsdaten angegeben und drittens schließt das alle Freehosteruser aus, bei denen der Externzugriff auf die DB gesperrt wurde. Trotzdem Danke!
Wenn du ein Problem hast, was du nicht lösen kannst, frag auf tutorials.de.
Wenn man dir nur einen Anstoß an die Sache gibt, nimm ihn mit Freuden an und füre die folgende und wegweisende Zeile aus (nicht am Computer! ;-)):
Sei kreativ!
Meine Seite: http://www.entwicklerpages.de/
-
15.09.11 18:33 #12
- Registriert seit
- May 2006
- Ort
- There is no place like 127.0.0.1
- Beiträge
- 3.521
Recflection: Manchmal kann man es nicht besser als einem Wiki-Link erklären: http://de.wikipedia.org/wiki/Reflexi...grammierung%29
Grüße
--
Qualität des Codes wird in WTF's/Min gemessen: Je mehr, desto schlechter der Code ;-)
-
17.09.11 18:46 #13
- Registriert seit
- Jul 2011
- Ort
- in einer 32 Bit ALU
- Beiträge
- 63
Danke!
Das scheint dann ja gar nicht so schwer zu sein. ZU erst prüfe ich die Klasse nach Methoden die z.B. mit plugin_ anfangen danach Erstelle ich einen String der den Namen der Klasse hat und erstelle mit dessen Hilfe ein Objekt und führe dann die gefundenen Methoden aus. Allerdings hab ich gelesen, das Phar oft erst in der Config aktiviert werden muss. Und unter Windoof sogar erst Installiert werden muss. Gibt es noch andere Möglichkeiten Dateien zu packen. Muss auch nicht komprimiert sein. Wäre es schwer selbst so etwas zu schreiben?Wenn du ein Problem hast, was du nicht lösen kannst, frag auf tutorials.de.
Wenn man dir nur einen Anstoß an die Sache gibt, nimm ihn mit Freuden an und füre die folgende und wegweisende Zeile aus (nicht am Computer! ;-)):
Sei kreativ!
Meine Seite: http://www.entwicklerpages.de/
-
17.09.11 19:15 #14
- Registriert seit
- May 2006
- Ort
- There is no place like 127.0.0.1
- Beiträge
- 3.521
Phar gehört seit PHP 5.3 zum Sprachumfang und muss nur in vorherigen Versionen in der php.ini eingeschaltet werden, evtl vorher noch über PECL heruntergeladen und installiert werden. Wie das geht, erfährst du im PHP-Manual (englisch vorausgesetzt).
Edit: Phar ist nur ein Vorschlag, wie man die Plugins einfach deployen kann (deployen = auf das Ziel-System installieren, manche sagen auch ausrollen (roll-out) dazu). Du kannst Reflection auch benutzen, ohne Phar zu verwenden.Grüße
--
Qualität des Codes wird in WTF's/Min gemessen: Je mehr, desto schlechter der Code ;-)
-
18.09.11 11:10 #15
- Registriert seit
- Jul 2011
- Ort
- in einer 32 Bit ALU
- Beiträge
- 63
Gut zu wissen.
Ich bin mir noch nicht sicher, ob in der ersten Version überhaupt schon ein Pluginsystem da sein muss.
Sollte ich in der nächsten Woche Mut allen anderen Teilen fertig sein, was ich bezweifel, word es noch keins geben. Wäre es denn schwer, eine Klasse zu schreiben, die mehrere Geuploadete Dateien zu einer zusammen fast?
Und eine weitere, die alle wieder herausließt? Ich hab mal geguckt wie das bei zip Funktioniert, konnte aber nichts gutes finden.Geändert von Entwicklerpages (18.09.11 um 11:12 Uhr)
Wenn du ein Problem hast, was du nicht lösen kannst, frag auf tutorials.de.
Wenn man dir nur einen Anstoß an die Sache gibt, nimm ihn mit Freuden an und füre die folgende und wegweisende Zeile aus (nicht am Computer! ;-)):
Sei kreativ!
Meine Seite: http://www.entwicklerpages.de/
Ähnliche Themen
-
Suche Forensoftware mit kompletter Baumstruktur
Von Isac im Forum Content Management Systeme (CMS)Antworten: 1Letzter Beitrag: 14.08.07, 19:08 -
Eigene Module (Newsbox,..) mit Forensoftware verbinden
Von cocoon im Forum PHPAntworten: 1Letzter Beitrag: 18.06.03, 16:39 -
Allerlei in Sachen Zeichnen
Von 3DMaxler im Forum PhotoshopAntworten: 3Letzter Beitrag: 27.12.02, 13:49





Zitieren

Login






[PHP][Snippet] Array zu XML konvertieren