fork download
  1. <?php
  2.  
  3. $_REQUEST = [
  4. "username" => "admin",
  5. "password" => "pass",
  6. "credit_card" => "000000"
  7. ];
  8.  
  9. $_SESSION = [
  10. "id" => 1
  11. ];
  12.  
  13. function create_log($filename, $log)
  14. {
  15. // Copia as superglobais para variáveis locais:
  16. $request = $_REQUEST;
  17. $session = $_SESSION;
  18.  
  19. // Define quais são as informações sensíveis:
  20. $filter = ["password", "credit_card"];
  21.  
  22. // Filtra as informações sensíveis:
  23. $request = array_filter($request, function ($key) use ($filter) {
  24. return !in_array($key, $filter);
  25. }, ARRAY_FILTER_USE_KEY);
  26.  
  27. $session = array_filter($session, function ($key) use ($filter) {
  28. return !in_array($key, $filter);
  29. }, ARRAY_FILTER_USE_KEY);
  30.  
  31. // Gera a mensagem de log:
  32. // file_put_contents(
  33. // $filename.'.log', '[START]'.
  34. // json_encode($request).PHP_EOL.
  35. // json_encode($session).PHP_EOL.
  36. // "Log ".$log.PHP_EOL.'[END]'.PHP_EOL
  37. // , FILE_APPEND );
  38.  
  39. var_dump($request);
  40. var_dump($session);
  41. }
  42.  
  43. create_log("foo", "Mensagem de log");
  44.  
  45. // Variáveis globais não foram alteradas:
  46. var_dump($_REQUEST);
  47. var_dump($_SESSION);
Success #stdin #stdout 0s 82880KB
stdin
Standard input is empty
stdout
array(1) {
  ["username"]=>
  string(5) "admin"
}
array(1) {
  ["id"]=>
  int(1)
}
array(3) {
  ["username"]=>
  string(5) "admin"
  ["password"]=>
  string(4) "pass"
  ["credit_card"]=>
  string(6) "000000"
}
array(1) {
  ["id"]=>
  int(1)
}