是否将数据保存为PHP脚本/保存为.PHP文件?(纯理论)

是否将数据保存为PHP脚本/保存为.PHP文件?(纯理论),php,database,security,Php,Database,Security,我知道这会是各种各样的糟糕形式,但我很好奇这是否会起作用 假设我是一个毫无希望的人,对SQL一无所知,所以通常我会将所有数据保存为.txt文件(遗憾的是,不久前我还是这样) 我知道,如果有人偶然发现这些.txt文件的URL,他们(显然)能够看到其中的所有数据。所以我想,“如果我将数据保存在一个PHP脚本/文件中会怎么样?这样,如果有人偶然发现它,他们只会看到一个空白页面,因为服务器将以PHP的形式执行它。” 下面是我想保存的一系列超机密数据: $myArray = array("apple","

我知道这会是各种各样的糟糕形式,但我很好奇这是否会起作用

假设我是一个毫无希望的人,对SQL一无所知,所以通常我会将所有数据保存为.txt文件(遗憾的是,不久前我还是这样)

我知道,如果有人偶然发现这些.txt文件的URL,他们(显然)能够看到其中的所有数据。所以我想,“如果我将数据保存在一个PHP脚本/文件中会怎么样?这样,如果有人偶然发现它,他们只会看到一个空白页面,因为服务器将以PHP的形式执行它。”

下面是我想保存的一系列超机密数据:

$myArray = array("apple","orange","banana");
我使用此数组并执行以下操作:

file_put_contents("data.php", "<?php \$var=\"" . htmlentities(json_encode($myArray)) . "\"; ?>");
现在,
$importVarArray
包含了我原来的超级机密数据数组,请随意使用

所以,我知道这是一种非常愚蠢的方法,但除了愚蠢之外,它是否真的是一种可行的存储数据的方法,以便外部用户完全无法访问


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

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


或者,更简单一点——只需将内容存储在web根目录之外。

与其经历这个循环,不如让web服务器拒绝对特定目录的请求,将原始数据转储到该目录中?您的脚本仍然可以从那里读取;只是所有外部请求都将被拒绝


或者,更简单一点——只需将内容存储在您的web根目录之外。

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


因此,如果数据是机密的,你应该加密它

是的,一般互联网用户无法接触到它,但任何有权访问服务器的人都可以看到它


因此,如果数据是机密的,你应该加密它

“我知道这很愚蠢,但这是一个可行的解决方案吗?”你说的“外部用户”是什么意思?有人访问你的网站吗?无论如何,您不应该在文档根目录中存储这样的关键数据。共享服务器上的其他用户?除非服务提供商很在行,并且知道他们在做什么,否则您的内容将对服务器上的所有其他用户完全开放。
。。。外人完全看不见;)我记得我刚开始学习PHP时做过类似的事情。“我知道这很愚蠢,但这是一个可行的解决方案吗?”你说的“外部用户”是什么意思?有人访问你的网站吗?无论如何,您不应该在文档根目录中存储这样的关键数据。共享服务器上的其他用户?除非服务提供商很在行,并且知道他们在做什么,否则您的内容将对服务器上的所有其他用户完全开放。
。。。外人完全看不见;)我记得我刚开始学习PHP时做过类似的事情。更好的是,将平面文件存储在一个根本无法通过web访问的路径中。我明白了。这不是我真正在做的事情;我只是想知道,对于无法访问我的服务器的人来说,它是否真的是防水的。不是。无论何时,只要您有一个可从外部调用的(在您的情况下是一个PHP脚本)访问文件系统中不属于公共的部分(如文档根目录之外的目录),您就有一个安全漏洞。更不用说你的数据只是放在那里让任何人都可以看到、修改、删除等等,这是有道理的。谢谢我想我应该补充一点:对于使用SQLite的人来说,这个答案也是一个很好的建议,因为它面临着与纯文本文件相同的安全问题。更好的是,将平面文件存储在一个根本无法通过web访问的路径中。我明白了。这不是我真正在做的事情;我只是想知道,对于无法访问我的服务器的人来说,它是否真的是防水的。不是。无论何时,只要您有一个可从外部调用的(在您的情况下是一个PHP脚本)访问文件系统中不属于公共的部分(如文档根目录之外的目录),您就有一个安全漏洞。更不用说你的数据只是放在那里让任何人都可以看到、修改、删除等等,这是有道理的。谢谢我想我应该补充一点:对于使用SQLite的人来说,这个答案也是一个很好的建议,因为它面临着与纯文本文件相同的安全问题。
<?php $var="[&quot;apple&quot;,&quot;orange&quot;,&quot;banana&quot;]"; ?>
$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));