note 49735 added to language.oop5.cloning
| From: | e dot bachman at schweiz dot ch | 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