0

これがあらゆる種類の悪い形であることはわかっていますが、これが機能するかどうかについて興味があります.

私は SQL について何も知らない完全に絶望的なケースだとしましょう。そのため、通常はすべてのデータを .txt ファイルとして保存します (悲しいことに、少し前まではそうでした)。

誰かがこれらの .txt ファイルの 1 つの URL に出くわした場合、(明らかに) その中のすべてのデータを見ることができることを私は知っています。だから私は、「データを PHP スクリプト/ファイル内に保存したらどうなるでしょうか? そうすれば、サーバーがそれを PHP として実行するため、誰かがそのデータに出くわしても、空白のページが表示されるだけです。」 と思います。

保存したい超機密データの配列は次のとおりです。

$myArray = array("apple","orange","banana");

私はこの配列を取り、これを行います:

file_put_contents("data.php", "<?php \$var=\"" . htmlentities(json_encode($myArray)) . "\"; ?>");

その結果、1 行のコードを含む「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 サーバーが特定のディレクトリへのリクエストを拒否し、生データをそのディレクトリにダンプしないのはなぜですか? スクリプトはそこから読み取ることができます。すべての外部リクエストが拒否されるだけです。

または、さらに単純に、Web ルートの外にコンテンツを保存するだけです。

于 2013-09-20T19:39:08.287 に答える
1

はい、一般のインターネット ユーザーには届きませんが、サーバーにアクセスできる人なら誰でも見ることができます。

したがって、データが機密情報である場合は、暗号化する必要があります!

于 2013-09-20T19:41:42.727 に答える