Опитвам се да защитя базата данни с плоски файлове от достъп или запитване от всеки, освен PHP, работещ от моя сървър.
Google има много много широка теория, но нищо не е твърдо по отношение на процесите на уеб сървъра, за да осигури данните. Тя не може да се съдържа над уеб корена.
Отговори:
3 за отговор № 1Можете да използвате .htaccess:
<Files *.db>
Deny from All
</Files>
1 за отговор № 2
Можете да направите цяла директория недостъпна от мрежата, като използвате .htaccess
, подобно на по-горе, но бих направил отделна директория за тях и забранявам всичко:
<Directory ~ "db">
Deny from all
</Directory>
Това очевидно ще забрани всички файлове, които поставяте в директорията "db" от вашия webroot.
1 за отговор № 3
Ограничението „трябва да се съдържа в уеб корена“ може да бъде проблем; със сигурност не е идеален.
Моето предложение е да попитам уебмастъри как да конфигурирате уеб сървъразабрани достъпа до този файл (не се доверявайте на програмистите, когато не е нужно), но също така имайте предвид, че трябва да сте сигурни, че няма начин да покажете съдържанието на файла чрез скрипт.
Също: ако има някакъв шанс, че ще се изпълняват скриптове, които показват съдържанието на файлове¹, трябва специален случай на кода, който го правиизрично да му попречи да работи във файла с базата данни. Това може да се направи само за всеки отделен случай и това е нещо, което винаги трябва да имате предвид (кодът с тази функционалност може да бъде добавен в бъдеще).
¹Това е по-лесно, отколкото си мислите: дори нещо като "просто" като include($view)
където $view
може да бъде доставен от URL адреса и не е правилно валидиран може да направи щетите.