note 49735 added to language.oop5.cloning

From: Date: Mon, 07 Feb 2005 10:08:58 +0000
Subject: note 49735 added to language.oop5.cloning
Groups: php.notes 
Request: Send a blank email to php-notes+get-84606@lists.php.net to get a copy of this message
PHP4 en PHP5 hanteren een andere logica met betrekking tot het klonen en doorsturen als referentie van instanties. Hierdoor kunnen onder andere een beveiligingsrisico's optreden. de migratie lijkt succesvol verlopen, maar later blijken onverwachte resultaten op te treden. Meer info en manieren om dit te omzeilen is te vinden op http://knowledgebase.opticproductions.nl/ articles/php4-php5-object-cloning.php Een voorbeeld van een beveiligingsrisico is de volgende code. In php4 wordt het gebruikerspassword veranderd, in php5 het admin password! // 1. Make a pre-configured user unknown // this is an instance that will be cloned later. // It kind of forms a ‘template’ $userUnknown = new User(); $userUnknown->loggedInArea = “MyWebsite”; // further prototype initialization // 2. Get the currently logged on user $currentUser = $userUnknown; $currentUser->load($webUserId); // 3. Get the admin user $adminUser = $userUnknown; $adminUser->load($adminUserId); // 4. do the logic. Notify the admin that a change will be made, and change the password of the web user $adminUser->sendMail(“the password of a user has changed!”); $currentUser->changePassword(“newpassword”): ---- Manual Page -- http://www.php.net/manual/en/language.oop5.cloning.php Edit -- http://master.php.net/manage/user-notes.php?action=edit+49735 Delete: added to the manual -- http://master.php.net/manage/user-notes.php?action=delete+49735&report=yes&reason=added+to+the+manual Delete: bad code -- http://master.php.net/manage/user-notes.php?action=delete+49735&report=yes&reason=bad+code Delete: spam -- http://master.php.net/manage/user-notes.php?action=delete+49735&report=yes&reason=spam Delete: useless -- http://master.php.net/manage/user-notes.php?action=delete+49735&report=yes&reason=useless Delete: other reasons -- http://master.php.net/manage/user-notes.php?action=delete+49735&report=yes Reject -- http://master.php.net/manage/user-notes.php?action=reject+49735&report=yes Search -- http://master.php.net/manage/user-notes.php

« previous php.notes (#84606) next »