Webapplikation mit Python programmieren

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

deets hat geschrieben:Und *gerade* unter dem Sicherheitsaspekt ist der Rueckgriff auf etwas bestehendes IMHO zu empfehlen - denn da gibt es viele Augen mehr, die Probleme erkennen.
Da möchte ich selbst nochmal einhaken: Gerade da haben bestehende Webframeworks schon einiges an Lösungen. Django etwa nutzt ein ORM, so dass typische SQL-Injections unmöglich werden, bietet in Templates Autoescaping, wodurch XSS-Lücken verhindert werden und bietet eine CSRF-Middleware, die sich darum kümmert CSRF-Attacken zu verhindern. Out-of-the-Box. Man muss nichts selbst implementieren sondern ist einfach sicher.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Electron
User
Beiträge: 11
Registriert: Freitag 25. März 2011, 05:26

Hallo.
Da habt ihr natürlich recht. Ich bin wie gesagt noch ganz am Anfang, ist momentan alles noch die Phase dass ich mir überlege wie ich alles umsetzen könnte. Ich denke ich werde ein paar "Trockenübungen" machen, d.h. irgendwelche kleinen Sachen machen um die Grundlagen zu lernen und dann recht bald auf ein fertiges System umsteigen, und mich dann darauf konzentieren, das zu modden, d.H. ein eigenes Template und Addons zu machen. So dass es nachher so aussieht wie ich mir das vorstelle.
Welche Systeme ich verwende, weiß ich noch nicht. Es kommt vor Allem drauf an, dass keine Lizenzkosten anfallen, man den Kram auch kommerziell legal kostenfrei verwenden kann. An zweiter Stelle steht die Funktion.
Wenn ich php nutzen würde, würde ich auf folgendes setzen: Wordpress, phpBB, Mediawiki, osCommerce. Dazu müsste ich dann Templates machen, um alle Systeme optisch aufeinander anzupassen. Außerdem müsste ich "Bridge Scripts" machen, um den Datenaustausch zwischen den versch. System hinzubekommen. Funktionen wie mein Punktesystem müsste ich Addon mit Anbindung an die anderen Systeme realisieren. Ein Photoalbum+Filemanager auf PHP Basis habe ich selber programmiert, ansonsten hätte sich da sicherlich auch noch eine OpenSource Lösung gefunden.
Um im Server-Dateisystem die Userspaces (Quasi ein Hosting-Account für jeden User, Für Bilder, Dateien und eine HTML-User-Seite) anzulegen, brauche ich auch noch Shellscripts, die im Anmeldevorgang irgendwann angestoßen werden.
Die abrechnungsrelevanten Daten (Sie sind nicht dazu gedacht, Geld zu kassieren, sondern es läuft über die Punkte als Belohnung für Aktivität, Shopeinkäufe, anklicken von Werbung) müssen mit einer zuverlässigen Backup Lösung permanent auf einen externen Backup Space in Kopie abgespeichert werden.
Für Navicat, als DB Backend+Backupsystem muss ich auch noch einen "Ersatz" finden.

Mit pyton kenne ich mich noch nicht so gut aus, da weiß ich nicht, welche Sachen ich als Grundlage nutzen könnte. Ich installiere mir grade einen neuen Testwebserver, um mal verschiedene pyton OpenSource Sachen zu testen. Die Sachen müssen nicht nur privat kostenfrei sein, sondern auch im "kleinkommerziellen" Einsatz. Alles was Lizenzkosten verursacht, ist von vorne herein schonmal raus.
Meine Communitywebseite soll mich schließlich kein Geld kosten. Sie soll mindestens Kostenneutral laufen, besser noch einen kleinen Gewinn abwerfen.
deets

Alle dir vorgeschlagenen Frameworks sind open source. Das ist also nicht das Problem.

Die "Trockenuebungen" klingen wieder nach selbst-machen. Das ist nicht sinnvoll. Generelles Wissen ueber HTTP ist natuerlich immer gut, aber in dem Mass, wie du das brauchst, solltest du das schon mit PHP gelernt haben.

Mir macht allerdings noch deine Liste von Basistechnologien "Sorge". Wenn du da schon hast, was du dir vorstellst, dann wuerde ich das - ganz pragmatisch - auch einfach *alles* mit PHP machen. Denn mir waere nicht bekannt, das es in der Python-Welt vergleichbares gibt. Hinweis darauf ist zB dieses Forum hier - ist ja auch phpBB ;) Das ist sicher kein prinzipieller technischer Grund, aber aus welchen Gruenden auch immer gibt es solche Systeme nicht off-the-open-source-shelf. Ich wuerde mir das also sehr gut ueberlegen, ob es wirklich Python sein muss (so sehr ich es persoenlich PHP vorziehe).

Last but not least hoert sich dieses Hosting-Accont-gedoens nach ziemlichem Unfug an. Meine Anwendung verwalten ~1.000.000 User. Mein SysAdmin wuerde mir den Hintern versohlen, wenn auch nur fuer *einen* davon ein Shell-Skript laufen wuerde, geschweige denn User-Accounts angelegt werden!

Ich kenne mich mit MySQL nicht aus, ich bevorzuge Postgres. Aber ich denke beide Systeme sind leistungsfaehig genug, um saemtliche deiner Userdaten inklusive Binaerdaten als BLOBs zu speichern. Wenn es da unerwartet Probleme gibt, ist es ein leichtes, das ueber einen externen Storage (also HD, memcached usw, inklusive Dinge wie S3) auszulagern. Dazu muessen die auch nicht irgendwie mit verschiedenen User-Rechten abgelegt werden, die Authorization ist immer die Aufgabe deiner Webanwendung.

Last but not least ist ein Testwebserver ebenfalls der falsche Weg. Sowas brauchst du schlicht nicht. Die gesammelte Python-Framework-Mannschaft kommt mit jeweils eigenen Servern daher, die zum entwickeln voellig ausreichen.

Wenn du dann mal soweit bist, das ganze auf einen Server zu bringen, kannst du dir da immer noch Gedanken machen. Ich tendiere momentan zu nginx + supervisord fuer die Paster-Server-Prozesse, aber da gibt es eine Vielzahl von Optionen - die alle im Moment voellig irrelevant sind ;)
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Electron hat geschrieben:Wenn ich php nutzen würde, würde ich auf folgendes setzen: Wordpress, phpBB, Mediawiki, osCommerce. Dazu müsste ich dann Templates machen, um alle Systeme optisch aufeinander anzupassen.
Siehst du, da hättest du mit dem von deets angesprochenen Deliverance die Möglichkeit alle diese Systeme über das gleiche System zu Themen, statt für jedes sich in die spezifischen Theming-Lösungen einarbeiten zu müssen.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Electron
User
Beiträge: 11
Registriert: Freitag 25. März 2011, 05:26

Also ich habe bei mir zuhause auf einem extra Rechner einen Testserver.
Natürlich könnte ich auch auf dem Live Server entwickeln.
Auf meinem PC habe ich Windows drauf. Da ginge es im Prinzip auch, abr ich bevorzuge den Linux Testserver.

Unter PHP habe ich testweise ein kleines Webseitenframework selbst gemacht. Wegen meiner Frickelei (Einen Homeserver als Speichererweiterung und Flexibilitätserweiterung für den Billig-Webspace) musste ich das auch.

Unter PHP weiß ich was ich nehmen würde, weil ich mich damit schon etwas länger befasse. Da kenne ich mich aus und weiß was es so gibt.

Im intenen Testetrieb habe ich folgendes:

Ich habe eine funktionierene Wordpress<->phpBB<->Photoalbum+Filemanager Bridge.
Ich habe ein eigenes WP und ein phpBB Template, 100% optische Übereinstimmung habe ich jedoch noch nicht. Man sieht beidem auch noch das Grundsystem deutlich an, habe die Standardtemplates modifiziert.

Der Photoalbum und Filemanager ist selbstgemacht. Sie arbeiten ohne eigene Datenbank. Sie sind Dateibasierend, und nutzen die phpBB Datenbank nur lesend.

Das Script legt unter var/www/webseite/users ein Verzeichnis an, und stellt dem User 10 MB Webspace ohne php/CGI Support zur Verfügung.
Der User erhält eine Subdomain in der Form User0815.meineseite.net
Der User kann dort eine richtige Homepage abgelegen, die auch direkt aufrufbar ist. Der Inhalt wird direkt über den Webserver ausgeliefert.

Das Photoalbum Script ließt die Bilder ebenfalls direkt vom Webspace ein, und gibt sie wieder aus. Man kann die Bilder aber auch direkt normal verlinken.

Läuft derzeit alles unter PHP. Sicher, man kann auch PHP basierend Shellscripts machen. Aber PHP ist dafür ja ursprünglich nicht gemacht.
Pyton wäre mir lieber. Damit hätte ich eine Sprache für alles.
Mit Pyton kann man ja sogar GUI Programme machen.
Einmal pyton lernen und diese Sprache zukünftig für alles nutzen. Das wäre fein.

@Leonidas: Ja das stimmt das Deliverance könnte ich recht gut verwenden.
Electron
User
Beiträge: 11
Registriert: Freitag 25. März 2011, 05:26

Also der Deliverance könnte vermutlich sogar eine der besten Lösungen sein.
Der kann wohl auch Serverübergreifend arbeiten.
Damit könnte das "Cloaking" und Re-Theming ziemlich gut funktionieren.
D.H. dass man auf den ersten Blick den Ursprungsserver des Output gar nicht sieht.
Außerdem ein starkes Re-Theming, so dass man auf den ersten Blick kaum noch sieht, dass es phpBB ist.
Und genau das will ich ja erreichen.

Muss das unbedingt mal testen.
deets

du bist schon wieder so fixiert auf "security by obscurity". deliverance verhaelt sich in dieser beziehung wie ein transparenter proxy. und damit sind *alle* angriffszenarien genauso gegeben. wenn eine luecke in phpbb ausgenutzt werden kann, dann nuetzt deliverance nix dagegen.

sonst wuerden doch alle leute einfach nur nen transparenten proxy fahren, und gut ist mit sicherheitsluecken...

trotzdem ist es natuerlich ein sehr interessantes + gutes stueck software, gerade fuer deinen anwendungszweck. ein single-sign-on musst du aber noch selbst irgendwie basteln.
Antworten