dedlfix: Referenzierten Parameter löschen

Beitrag lesen

Tach!

Angenommen folgende Script-Datei wird ausgeführt:

<?php

include "config.php";
$bot = Bot::create($CONFIG);
?>


>   
> unset löscht ja nun an sich nur die Referenz auf den eigentlichen Speicher, ich würde nun gerne aber $CONFIG löschen. Das Problem ist, dass $CONFIG auch $bla oder irgendeinen anderen Namen haben könnte.  
  
Oder gar nicht zwingend als benannte Variable existieren muss, wenn du keine Referenz verlangen würdest. Da könnte auch ein Funktionsergebnis oder ein direkt angelegtes Array übergeben werden.  
  

> Hintergrund der ganzen Sacher ist zum ersten, dass ich Speicher den ich danach nicht mehr brauch aufräumen möchte, zum anderen aber auch, dass in der Variablen auch ein Passwort in Klartext enthalten ist.  
> Die Applikation soll modular erweiterbar sein und Module sollen nicht auf die Konfigurationsdaten zugreifen können.  
  
Das kann sie in jedem Fall, weil auch der restliche Code die Möglichkeit hat, die Konfig-Datei zu inkludieren.  
  
Du kannst auch die Include-Datei so umschreiben, dass die Konfigurationsdaten nur innerhalb einer Funktion, z.B. readConfigData(), als Variablen existieren. Die Funktion liefert diese Werte als Ergebnis und der Funktionsaufruf ist anstelle des jetzigen $CONFIG als Parameter deiner create()-Methode notiert. Auch dann kann jeder readConfigData() aufrufen. Und wenn dir noch eine andere Methode einfällt, dann kann diese durch Lesen der Konfigurationsdatendatei umgangen werden.  
  

> Gibt es eine Möglichkeit?  
  
Keine wirksame. Alles was im Kontext des Programmes lebt, kann auch gelesen werden. Selbst private Eigenschaften von Objekten können mit print\_r() oder var\_dump() sichtbar gemacht werden.  
  
  
dedlfix.