Impressum · Kontakt · Hilfe
Besucher online · Mitglieder



Portal > Foren > PHP > PHP-Programmierung > Anwendung unter PHP 5 lauffähig machen, Herangehensweise, Erfahrungen
Antwort
 
Themen-Optionen
Alt 02.02.2007, 08:53   Nach oben    #1
Ben
Erfahrener Benutzer
 
Benutzerbild von Ben
 
Registriert seit: 02.12.2004
Ort: Remagen
Beiträge: 4.619
Standard Anwendung unter PHP 5 lauffähig machen, Herangehensweise, Erfahrungen

Guten Morgen,
ich habe die Aufgabe eine PHP-Anwendung so umzuschreiben, dass sie unter PHP 5 lauffähig ist (z.B. register_globals) und das mögliche Angriffsstellen für Injections eliminiert werden.

Das Neuschreiben ist nicht möglich. Das kommt zu einem späteren Zeitpunkt. Über Sinn und Unsinn braucht man hier jetzt nicht reden.

Meine Frage ist, wie man an so eine Aufgabe am günstigsten herangeht.
Die Anwendung besteht aus Dutzenden Dateien .. ist teilweise etwas chaotisch, aber die Funktion machts . Wäre erfreut, wenn mir hier jemand Tipps geben könnte.

Danke.
Grüße, Ben.
Ben ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 02.02.2007, 09:19   Nach oben    #2
Erfahrener Benutzer
 
Registriert seit: 10.11.2005
Ort: Schweiz -> Basel
Beiträge: 204
Standard

Fehlt die Angabe von wo aus du auf PHP5 umsteigen willst. Ich nehme mal einfach an das es von PHP4 aus ist. Dazu bietet dir nämlich das PHP Manual ne Menge:

http://www.php.net/manual/en/migration5.php
think ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 02.02.2007, 09:27   Nach oben    #3
Ben
Erfahrener Benutzer
 
Benutzerbild von Ben
 
Registriert seit: 02.12.2004
Ort: Remagen
Beiträge: 4.619
Standard

Zitat:
Zitat von think Beitrag anzeigen
Fehlt die Angabe von wo aus du auf PHP5 umsteigen willst. Ich nehme mal einfach an das es von PHP4 aus ist.
Was auch sonst.

Die Informationen aus dem Manual sind mir natürlich bekannt. Hab schon 'ne Menge gestöbert. Es geht mir eher darum, wie man möglichst effektiv arbeitet.

Gerade bei register_globals oder Funktionen mit "global"en Variablen, ist es doch häufig durchaus schwierig herauszufinden, wo die Variablen eigentlich herkommen.
Klar, ich durchforste hier die Dateien und habe mir auch neue Dateien geschrieben, welche Sammlungen von Funktionen, Variablen, Konstanten, .. enthalten, aber das ist doch alles eher von jetzt auf gleich gedacht und nicht wirklich geplant.

Würde gerne meine Arbeit optimieren und hoffe, dass irgendwer schon mal eine ähnliche Aufgabe bearbeitet hat und mir dabei helfen kann.
Ben ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 02.02.2007, 10:27   Nach oben    #4
Mensch
 
Benutzerbild von WarrenFaith
 
Registriert seit: 17.08.2005
Ort: Berlin
Beiträge: 1.710
Standard

Erstmal: Das ist viel Arbeit!
Dann würde ich dir erstmal empfehlen, dein PHP so aufzusetzen wie du es brauchst, also register_globals off etc (haste ja sicher schon gemacht)
dann das error_reporting langsam hochschrauben, also erst alle errors beseitigen, dann alle warnings etc.
Danach müsste ein ausgiebiger Funktionstest gemacht werden.

für funktionen kann ich dir eclipse und shift+strg+g empfehlen. bist du auf dem funktionsnamen sollte er dir alle orte liefern in denen das aufgerufen wird (weiß jetzt aber nicht so genau ob das unter phpeclipse auch geht)

Viel mehr an Effektivität kann man eigentlich kaum erreichen, denn eine prozedurale Anwendung zu optimieren ist immer aufwendig.
__________________
I did it my way - Senseless-Blog
WarrenFaith ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 02.02.2007, 10:32   Nach oben    #5
Ben
Erfahrener Benutzer
 
Benutzerbild von Ben
 
Registriert seit: 02.12.2004
Ort: Remagen
Beiträge: 4.619
Standard

Zitat:
Zitat von WarrenFaith Beitrag anzeigen
Erstmal: Das ist viel Arbeit!
Ist mir bewusst. Meiner Ansicht nach lohnt sich das auch nicht, aber ich hab hier nichts zu sagen.

Zitat:
Zitat von WarrenFaith Beitrag anzeigen
Dann würde ich dir erstmal empfehlen, dein PHP so aufzusetzen wie du es brauchst, also register_globals off etc (haste ja sicher schon gemacht)
Habe zwei working copies. Einmal mit PHP 5, wie es dann laufen soll, einmal mit PHP 4, wie es gerade ist.

Zitat:
Zitat von WarrenFaith Beitrag anzeigen
dann das error_reporting langsam hochschrauben, also erst alle errors beseitigen, dann alle warnings etc.
Danach müsste ein ausgiebiger Funktionstest gemacht werden.
Praktisch das, was ich gerade mache.


Zitat:
Zitat von WarrenFaith Beitrag anzeigen
für funktionen kann ich dir eclipse und shift+strg+g empfehlen. bist du auf dem funktionsnamen sollte er dir alle orte liefern in denen das aufgerufen wird (weiß jetzt aber nicht so genau ob das unter phpeclipse auch geht)
Nope. AFAIK geht das nicht ... was der letzte Dreck ist.

Zitat:
Zitat von WarrenFaith Beitrag anzeigen
denn eine prozedurale Anwendung zu optimieren ist immer aufwendig.
Vor allem, wenn keinerlei Überprüfung stattfindet, ob Variablen korrekt gesetzt sind/werden etc.
Ich sehe schon .. das wird ein Haufen ätzender Arbeit.
Aber danach sollte ich die Anwendung in und auswendig können *g*
Ben ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 02.02.2007, 11:06   Nach oben    #6
Mensch
 
Benutzerbild von WarrenFaith
 
Registriert seit: 17.08.2005
Ort: Berlin
Beiträge: 1.710
Standard

Zitat:
Zitat von Ben Beitrag anzeigen
Zitat:
Zitat von WarrenFaith Beitrag anzeigen
für funktionen kann ich dir eclipse und shift+strg+g empfehlen. bist du auf dem funktionsnamen sollte er dir alle orte liefern in denen das aufgerufen wird (weiß jetzt aber nicht so genau ob das unter phpeclipse auch geht)
Nope. AFAIK geht das nicht ... was der letzte Dreck ist.
Dann installiere dir Agent Ransack und nutz die Volltextsuche für Dateien.
Also nach "funktionsname(" bzw "funktionsname (" suchen, ist zwar umständlich aber immer noch besser als jede datei einzeln rauszusuchen...
__________________
I did it my way - Senseless-Blog
WarrenFaith ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 02.02.2007, 11:13   Nach oben    #7
Ben
Erfahrener Benutzer
 
Benutzerbild von Ben
 
Registriert seit: 02.12.2004
Ort: Remagen
Beiträge: 4.619
Standard

Also, das habe ich innerhalb von zwei etwas längeren Arbeitstagen bereits gemacht. Es gibt eine functions.inc.php, die ich nun zuordnen konnte. Erst, wenn ich die Basis der Anwendung "umgeschrieben" habe gehe ich weiter zu Unterseiten, einfach weil es sonst zu viel auf einmal wird.

Ich habe mir überlegt, dass ich mir übergangsweise ein Registry-Pattern baue, welches dann sozusagen die globalen Variablen ersetzt.
Vorteil ist einfach, dass ich dann erstmal die Funktionen soweit zusammenbauen kann, dass ich nicht ständig ein $x habe, von dem ich genau nichts weiß.

Jaja, lange wird es dauern und die Zeit rennt. Aber was macht man nicht alles für ein niveauvolleres Internetangebot.
Ben ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 02.02.2007, 12:14   Nach oben    #8
BIN EIN KRASSA HELD!!!111
 
Benutzerbild von robo47
 
Registriert seit: 02.06.2005
Ort: weiher im tiefsten Odenwald
Beiträge: 1.185
Standard

In Eclipse einstellen, dass "uninitialisierte" Variablen gelb unterstrichen werden, dann siehst du schonmal alle Variablen die mit großer Sicherheit aus dem Bereich Register globals kommen (Ausnahmen die mir bekannt sind, sind eigentlich nur Variablen die via Referenz einer Funktion übergeben werden, die werden dann auch gelb unterstrichen, aber das lässt sich ja schnell überprüfen, ob die Funktion den Parameter als Referenz nimmt), falls du das nicht eh aktiviert hast

Das hat mir mal extrem geholfen.
robo47 ist gerade online  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 02.02.2007, 12:25   Nach oben    #9
Erfahrener Benutzer
 
Registriert seit: 04.01.2006
Ort: Kassel
Beiträge: 789
Standard

Sind denn Tests in irgendeiner Form vorhanden? Hört sich für mich so an, als wären das drei paar Stiefel hier: a) die Portierung von PHP4 auf PHP5, b) register_globals -> off und c) auf Sicherheit prüfen.

Ich glaub, wenn du die Punkte auseinanderhältst, dann ist das schon einiges übersichtlicher. Für Punkt a) ist es ja vor allem, dass du Objeke anders klonen musst. Da hängts natürlich stak von ab, wie die Anwendung geschrieben ist, ob das Wochen oder ein paar Stunden in Anspruch nimmt und daher eben auch, wie man das Optimieren kann. Außer Unit-Tests fällt mir da nichts ein...

Für b) hilft ja wohl auch nur testen, testen, testen und c) ist eh noch mal ein ganz anderer Stiefel.

Mein Vorschlag für eine Optimierung wäre eben, die Aufgabe in diese (oder andere) übersichtliche Teilschritte zu zerlegen, damit der "Tunnel" von einer lauffähigen Version zur nächsten nicht so lange ist (ich mag diese Tunnel nicht...*g) und eben zu schauen, in wie weit du das Testen optimieren/systematisieren kannst.

Basti
Basti ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 02.02.2007, 12:36   Nach oben    #10
Ben
Erfahrener Benutzer
 
Benutzerbild von Ben
 
Registriert seit: 02.12.2004
Ort: Remagen
Beiträge: 4.619
Standard

Keine Tests vorhanden. Tests .. das ist Zukunftsmusik.

Jau, ich werde mich nunmal mit error_reporting() bewaffnet auf die Suche nach Warnungen und Meldungen begeben ..
Ben ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 02.02.2007, 15:43   Nach oben    #11
Ben
Erfahrener Benutzer
 
Benutzerbild von Ben
 
Registriert seit: 02.12.2004
Ort: Remagen
Beiträge: 4.619
Standard

Ich sach nur eins ...

eine Meldung weg, zehn andere dazu.
Sisyphusarbeit pur ..
Ben ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 02.02.2007, 16:15   Nach oben    #12
Mensch
 
Benutzerbild von WarrenFaith
 
Registriert seit: 17.08.2005
Ort: Berlin
Beiträge: 1.710
Standard

hehe mir hatte irgendeiner mal erzählt das er ne php anwendung optimieren sollte und beim umstellen der error_reportings auf E_ALL ist der apache an dem output erstickt... obs stimmt und übertrieben ist kann ich nicht sagen, aber selbst wenn die hälfte davon stimmt ist das schon hart...
__________________
I did it my way - Senseless-Blog
WarrenFaith ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 02.02.2007, 16:22   Nach oben    #13
BIN EIN KRASSA HELD!!!111
 
Benutzerbild von robo47
 
Registriert seit: 02.06.2005
Ort: weiher im tiefsten Odenwald
Beiträge: 1.185
Standard

Zitat:
Zitat von WarrenFaith Beitrag anzeigen
hehe mir hatte irgendeiner mal erzählt das er ne php anwendung optimieren sollte und beim umstellen der error_reportings auf E_ALL ist der apache an dem output erstickt... obs stimmt und übertrieben ist kann ich nicht sagen, aber selbst wenn die hälfte davon stimmt ist das schon hart...
kann ich bestätigen, ist mir schonmal passiert, problem war hauptsächlich, dass es das backend des systems war und da ein frameset lief überall nur notices und bei gewissen seiten waren es ihm zu viele und apache hat sich gekillt
robo47 ist gerade online  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist An.
Smileys sind An.
[IMG] Code ist An.
HTML-Code ist Aus.
Trackbacks are An
Pingbacks are An
Refbacks are Aus

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
PHP 5.2 Kompilierung schlägt fehl Byrel Tools, Server, Betriebssysteme 0 03.11.2006 21:09
[Rezension] PHP 5 Kochbuch Artemis Literatur 2 07.09.2006 19:15
PHP 5.1.5, PHP 4.4.4 und PHP 5.2.0 RC2 veröffentlicht Ben Nachrichten 2 01.09.2006 16:05
PHP 5.1 ist drausen robo47 Nachrichten 5 28.11.2005 20:30
Neue PHP "release candidates": PHP 4.4.2 RC 1 und PHP 5.1 RC 6 Ben Nachrichten 1 21.11.2005 20:48


Alle Zeitangaben in WEZ +2. Es ist jetzt 20:51 Uhr.

Nach oben
Wir nutzen das Zend Framework, vBulletin (vBulletin v3.7.3, Copyright ©2000-2008, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0) und vBSEO.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44