![]() |
| | Themen-Optionen | Thema durchsuchen |
| | Nach oben #1 |
| Benjamin Klaile Registriert seit: 02.12.2004 Ort: Remagen
Beiträge: 4.516
|
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 Danke. Grüße, Ben. |
| | |
| | Nach oben #2 |
| Registriert seit: 10.11.2005 Ort: Schweiz -> Basel
Beiträge: 211
|
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 |
| | |
| | Nach oben #3 | |
| Benjamin Klaile Registriert seit: 02.12.2004 Ort: Remagen
Beiträge: 4.516
| Zitat:
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. | |
| | |
| | Nach oben #4 |
| Martin Breuer Registriert seit: 17.08.2005 Ort: Berlin
Beiträge: 1.653
|
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 Weihnachtsgeschenk? Schülern helfen - Bodypainting Kalender für 2009 |
| | |
| | Nach oben #5 | |||
| Benjamin Klaile Registriert seit: 02.12.2004 Ort: Remagen
Beiträge: 4.516
| Ist mir bewusst. Meiner Ansicht nach lohnt sich das auch nicht, aber ich hab hier nichts zu sagen. Zitat:
Zitat:
Zitat:
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* | |||
| | |
| | Nach oben #6 | |
| Martin Breuer Registriert seit: 17.08.2005 Ort: Berlin
Beiträge: 1.653
| Zitat:
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 Weihnachtsgeschenk? Schülern helfen - Bodypainting Kalender für 2009 | |
| | |
| | Nach oben #7 |
| Benjamin Klaile Registriert seit: 02.12.2004 Ort: Remagen
Beiträge: 4.516
|
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 Jaja, lange wird es dauern und die Zeit rennt. Aber was macht man nicht alles für ein niveauvolleres Internetangebot. |
| | |
| | Nach oben #8 |
| Benjamin Steininger Registriert seit: 02.06.2005 Ort: weiher im tiefsten Odenwald
Beiträge: 1.208
|
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. |
| | |
| | Nach oben #9 |
| Bastian Fenske Registriert seit: 04.01.2006 Ort: Kassel
Beiträge: 853
|
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 |
| | |
| | Nach oben #12 |
| Martin Breuer Registriert seit: 17.08.2005 Ort: Berlin
Beiträge: 1.653
|
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 Weihnachtsgeschenk? Schülern helfen - Bodypainting Kalender für 2009 |
| | |
| | Nach oben #13 | |
| Benjamin Steininger Registriert seit: 02.06.2005 Ort: weiher im tiefsten Odenwald
Beiträge: 1.208
| Zitat:
| |
| | |
![]() |
| Lesezeichen |
| Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1) | |
| Themen-Optionen | Thema durchsuchen |
| |
Ä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 |