我知道这会是各种不好的形式,但很好奇这是否可行。
假设我是一个完全没有希望的案例,对 SQL 一无所知,所以通常我会将所有数据保存为 .txt 文件(遗憾的是,直到不久之前我都是这样)。
我知道,如果有人偶然发现这些 .txt 文件之一的 URL,他们(显然)能够看到其中的所有数据。所以我想,“如果我将数据保存在 PHP 脚本/文件中会怎样?这样,如果有人偶然发现它,他们只会看到一个空白页面,因为服务器会将其作为 PHP 执行。”
所以这是我要保存的超机密数据数组:
$myArray = array("apple","orange","banana");
我拿这个数组做这个:
file_put_contents("data.php", "<?php \$var=\"" . htmlentities(json_encode($myArray)) . "\"; ?>");
结果是一个名为“data.php”的文件,其中包含一行代码:
<?php $var="["apple","orange","banana"]"; ?>
该文件对任何外部用户都是不可见的;它是有效的 PHP 代码,服务器会照此执行,但它所做的只是声明一个变量。
但是,我可以通过执行以下操作从另一个文件访问 data.php 中记录的数据:
$importVar = htmlentities(file_get_contents("data.php"));
$importVarBeg = 20;
$importVarEnd = 13;
$importVar = html_entity_decode(substr($importVar, $importVarBeg, strlen($importVar) - ($importVarBeg + $importVarEnd)));
$importVarArray = json_decode(html_entity_decode($importVar));
现在$importVarArray
包含我原来的超级机密数据数组,随我做!
再说一次,我知道这是一种非常愚蠢的做事方式,但除了愚蠢之外,它实际上是一种可行的存储数据的方式,使得外部用户完全无法访问吗?
编辑:澄清“外部用户”——任何访问我网站的人。假设我是唯一使用我的服务器的人。