0

我知道这会是各种不好的形式,但很好奇这是否可行。

假设我是一个完全没有希望的案例,对 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="[&quot;apple&quot;,&quot;orange&quot;,&quot;banana&quot;]"; ?>

该文件对任何外部用户都是不可见的;它是有效的 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包含我原来的超级机密数据数组,随我做!

再说一次,我知道这是一种非常愚蠢的做事方式,但除了愚蠢之外,它实际上是一种可行的存储数据的方式,使得外部用户完全无法访问吗?

编辑:澄清“外部用户”——任何访问我网站的人。假设我是唯一使用我的服务器的人。

4

2 回答 2

2

为什么不让您的网络服务器拒绝对特定目录的请求,而不是通过这个马戏团,将您的原始数据转储到该目录中呢?您的脚本仍然可以从那里读取;只是所有外部请求都将被拒绝。

或者,更简单 - 只需将内容存储在 Web 根目录之外。

于 2013-09-20T19:39:08.287 回答
1

是的,一般 Internet 用户无法访问它,但任何有权访问服务器的人仍然可以看到它。

所以如果数据是机密的,你应该加密它!

于 2013-09-20T19:41:42.727 回答