предотвращение прямой загрузки файла SQLite с помощью .htaccess - PullRequest
3 голосов
/ 18 ноября 2010

Я знаю основы .htaccess, но свободно признаюсь, что не являюсь экспертом, когда дело касается mod_rewrite.

Проблема: у меня есть файл sqlite db в корне документа (нет, я могуне убирайся отсюда) называется data.sqlite.Доступ к этому файлу осуществляется изнутри через файлы PHP, однако я хочу защитить этот файл от «загрузки» пользователем, который вводит URL-адрес БД непосредственно в браузер.

Я использовал .htaccess для создания красивых URL-адресов впрошлое и мысль об использовании mod_rewrite обеспечит хорошее решение моей проблемы.Однако мое правило перезаписи, по-видимому, не препятствует доступу.

.htaccess

Options +FollowSymLinks
Options -multiviews

RewriteEngine On
RewriteBase /


RewriteCond %{http_host} ^www\.example\.com [NC]
RewriteRule ^(.*)$ http://example.com/$1 [R=301,NC]

##prevent access to any file data.sqlite by redirecing back to index.php
RewriteRule ^data.sqlite$ index.php [L,NC]

##my other rules follow - not shown here

Есть идеи, где я ошибаюсь при перезаписи ??Я уверен, что это что-то простое?

РЕДАКТИРОВАТЬ:

В идеале я хотел бы запретить прямой URL-доступ ко всем файлам, заканчивающимся .sqlite, а не только data.sqlite

Ответы [ 3 ]

1 голос
/ 28 января 2011

Вот как вы это делаете, потому что я тоже это сделал:

RewriteCond %{HTTP_REFERER} !^http://*.webwarecollection.com/.*$      [NC]
RewriteCond %{HTTP_REFERER} !^http://*.webwarecollection.com$      [NC]
RewriteRule .*\.(sqlite)$ - [F,NC]
1 голос
/ 18 ноября 2010

httpd отключает доступ к файлам, которые начинаются с . по умолчанию. Переименуйте ваш файл в .data.sqlite, и он будет обработан.

0 голосов
/ 27 августа 2015

О «начать с». это неправда!. Файл должен начинаться с ".ht", чтобы по умолчанию блокироваться в приложении.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...