2

ユーザーがパスワードを入力するとファイルがコンピューターにダウンロードされる、任意のバイナリ ファイルに非常に単純な php プロテクターを作成したいと思いますが、ダウンロードするたびにパスワードを入力する必要があります。

Easy way to password-protect php pageという質問に対する最初の回答では、ファイルが ascii で表示可能で、ブラウザでレンダリング可能である必要があるようです。include("secure.html");

バイナリ ファイルを保護する方法はありますか。たとえばfoo.bin、同じレベルの単純さ (および同様の限られたセキュリティ レベル) でしょうか?

4

1 に答える 1

3

ファイルが保存されているフォルダーを設定してすべてを拒否すると、 readfile を使用してアクセスできるようになります。

<?php
    if (!empty($_POST)) {
        $user = $_POST['user'];
        $pass = $_POST['pass'];

        if($user == "admin"
        && $pass == "admin")
        {
            $file = 'path/to/file';

            if (file_exists($file)) {
                header('Content-Description: File Transfer');
                header('Content-Type: application/octet-stream');
                header('Content-Disposition: attachment; filename='.basename($file));
                header('Content-Transfer-Encoding: binary');
                header('Expires: 0');
                header('Cache-Control: must-revalidate');
                header('Pragma: public');
                header('Content-Length: ' . filesize($file));
                ob_clean();
                flush();
                readfile($file);
                exit;
            }
        }
    }
?>

<form method="POST" action="">
    User <input type="TEXT" name="user"></input>
    Pass <input type="TEXT" name="pass"></input>
    <input type="submit" name="submit"></input>
</form>
于 2013-04-21T23:50:43.873 に答える