Я запускаю веб-сайт, на котором страница защищена простым сценарием защиты паролем php (я читал, что это не особенно безопасно, но я не могу использовать .htaccess с моим хостом). Страница должна быть защищена из-за изображений и документов, хранящихся на ней для пользователей. Сценарий php работает для защиты страницы, но если вы не вошли в систему, вы все равно можете получить доступ к изображениям, просто перейдя прямо в домен (например, http://example.com/images/example.jpg). Есть ли способ, которым я могу предотвратить это (возможно, без необходимости изменения метона защиты паролем). Любая помощь с благодарностью. Спасибо
Вы можете хранить личные документы в папке за пределами общей папки. Затем вам просто нужно настроить форму, которая отправляет пароль на другую страницу, которая проверяет пропуск, если он совпадает, загрузите изображение, иначе выведите ошибку.
Код будет что-то вроде этого
if($_POST['PASS']=="strongpass"){
$img = 'root/blah/image.jpeg';
header('Content-Type: image/jpeg');
readfile($img);
}
Я бы предложил разместить все документы и изображения вне вашей общей папки на вашем хосте. Затем получите доступ ко всем из них через скрипт PHP, который читает их из безопасного места на сервере и выводит их в браузер.
Вы можете использовать такие функции, как: http://php.net/manual/en/function.readfile.php или же http://php.net/manual/en/function.file-get-contents.php прочитать файл.
<?php
echo file_get_contents($secure_file_path);
?>
Никто не может получить доступ к вашим документам из браузера, если они не пройдут через этот скрипт. Очевидно, что скрипт, который читает документ, должен быть защищен какой-либо аутентификацией.