【问题标题】:How to completely wipe an array? [duplicate]如何彻底擦除阵列? [复制]
【发布时间】:2015-12-03 10:39:15
【问题描述】:

我有时有一些敏感数据,例如用户数据和存储在数组中的东西。问题是,未设置的行为很有可能就像在大多数文件系统上删除一样工作,只需将其从索引中删除即可,“ out of vision out of mind”,但我显然想消灭数组的内容,所以即使可能有第二次心脏出血或类似的东西,它们也无法再被读取......所以我想完全覆盖数组的数据,所以它不能在我完成工作后不再从 ram 中检索它。

有什么想法吗?

【问题讨论】:

  • 我建议,如果这是一个如此严重的安全问题,那么您可以使用另一种语言,一种专门设计用于考虑此功能的语言.....大多数计算机语言在变量停止时不会擦除内存需要定义,但只是释放该内存以在其他地方使用......这是非常短暂的,但即使是银行也能容忍轻微的流血风险,但如果你正在为 NSA 工作,那么你可能不得不担心甚至是这种级别的安全性
  • 当然,如果您的系统被破坏到潜在黑客可以直接访问系统内存的程度,您可能会有更严重的安全担忧
  • @Sougata 重复的东西是错误的。另一个用于释放内存,而这个用于实际擦除 RAM 中的数组数据
  • “当变量停止定义时,大多数计算机语言不会擦除内存”->这正是我问这个的原因。对于单个字符串,这很容易stackoverflow.com/questions/10088553/…,但数组可以包含任何东西,数字,字符串,布尔值等......
  • 我认为这些都是他们的解释。如果不是其他人将投票重新开放它。 :)

标签: php


【解决方案1】:

要完全擦除数组,您可以取消设置或覆盖它。

$array = array(1, 2, 3);

// To unset it - a var_dump will return NULL afterwards
unset($array);

// To overwrite - a var_dump will return array(0) { empty } afterwards
$array = array();

【讨论】:

  • 我宁愿分配NULL
  • 如果我们之前有'abc',那么分配NULL会给你(如果你在数组中有一个字符串)NULL.'bc',至少我认为是这样
猜你喜欢
  • 2016-05-31
  • 1970-01-01
  • 2020-07-05
  • 2021-10-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-24
  • 1970-01-01
  • 2015-08-29
相关资源
最近更新 更多