2

私はデータベース管理システムとしてSQLiteを使用するPHPアプリケーションを開発していますが、MySQLやPostgreSQLなどは代替手段ではありません(実際にはpgsqlを使用したいのですが)。 。現在、多くの人が共有ホスティングを使用しており、その多くはhtdocs-directoryへの直接FTPアクセスのみを提供していますが、それ以上は提供していません。つまり、顧客はSQLite-Database-Fileをhtdocs内に配置する必要があります。つまり、世界中からアクセスでき、誰でもダウンロードできます。

それから顧客にある種の保護を与えるための最良の方法は何ですか?それは単純で、すべてのHTTPサーバーでもサポートされていますか?

4

4 に答える 4

6

.htaccess ファイルを使用し、データベース名をロックダウンして、外部からアクセスできないようにすることができます。多くのサーバーは、「.」で始まるすべてのファイル名に対してすでにこれを行っています。もちろん、これは Apache でも機能しますが、他の Web サーバーでは修正が必要です。

あなたの最善の策は、htdocsの上でホストできるように実際に設定することです. ドキュメントルートをチェックし、可能であればsqliteファイルをより高いディレクトリに移動するインストールスクリプトを使用できるかもしれません。

残念ながら、sqlite は Web サーバーと同じユーザーによって読み書きされるため、外部アクセスから簡単にロックダウンする方法はありません。それを隠して移動することが、私が考えることができる唯一の現実的な解決策です。

于 2009-04-04T17:33:45.293 に答える
4

デフォルトでは(私が遭遇したLinuxインストールの場合)、Apacheは実際.htに直接提供されるものから始まるものをすべてブロックします:

<Files ~ "^\.ht">
    Order allow,deny
    Deny from all
</Files>

データベース ファイルのようなファイル名を使用したい場合はsqlite.db、次のルールを使用してブロックできます。

<Files ~ "\.db$">
    Order allow,deny
    Deny from all
</Files>

もちろん、ほとんどのホスティング プロバイダーでこのルールを実装するには.htaccess、ルールを含むファイルを配布する必要があります。これらは、デフォルトでは *NIIX ディレクトリ リスト (または FTP クライアント) に表示されないため、見落とされることがあります。

共有ホスト環境で Microsoft IIS サーバーに使用できる同様のタイプのルールは知りません。

于 2009-04-04T17:55:52.477 に答える
3

使用されているすべての HTTP サーバー ソフトウェアで機能する保護はありません。どの Web サーバーが使用されているかに関係なく、ドキュメント ルートの外に移動することをお勧めします。

ファイルがドキュメント ルート内で提供されないように実際に保護するには、サーバー ソフトウェアとその構成の変更に関する知識が必要です。

于 2009-04-04T18:18:40.833 に答える
0

Apache Web サーバーの場合は、.htaccess ファイルを使用します。IIS でそれを行う方法がわかりません。

最初に空の index.html ファイルまたは同等のものを配置して、ブラウザにディレクトリが表示されないようにする必要があると思います。名前とパスがわかっている場合、そのファイルへのアクセスを妨げることはありませんが、どの Web サーバー上にあるかわからない場合は、何もしないよりはましです。

于 2009-04-04T17:41:51.340 に答える