web-dev-qa-db-ja.com

PHPとSQLを含むウェブサイト全体をコピーしますか?

wgethttrackまたは他のプログラム)を使用してWebサイト全体とテンプレートをコピーするときに、PHPコードとSQ​​Lデータベースも取得することは可能ですか?

このようなサイトをコピー/ミラーリングするには、どのソフトウェアが必要ですか?そして、「インターネットダウンロードマネージャー」はこれに使えるプログラムですか?

4
wire2

いいえ。Webサーバーはこれらのファイルを明示的に公開する必要があります。

PHP/SQLを使用するWebサイトをロードすると、サーバー自体でPHPが実行され、PHPプログラム(通常はHTML、CSS、およびJSの組み合わせ)これらのファイルは、実際にはWebサーバーにこれらの状態で保存されることはありませんが、手続き的に生成されます。wgetを使用するときに行うことは、Webサーバーの出力をダウンロードすることです(サーバーからファイルをコピーするのではなく、HTTPクエリ)。

SQLサーバーには、信頼できるアカウントからのみアクセスでき、通常は次のPHPコードでアクセスします。sshまたはsftpを使用してサーバー自体にログインするための資格情報がない限り、アクセスできません。生のPHPコードまたはSQLデータベースにアクセスします。

サーバーは、PHPファイルを含む、コンピューターからのファイルの直接ダウンロードを許可するように構成できますが、PHP)を使用する目的が損なわれるため、これは一般的ではありません。競合する管理者は、PHPコードへの直接アクセスを許可せず、特にSQLサーバーへのアクセスを厳しく制限します。

これは、セキュリティエクスプロイトを使用してこれを実行できないということではありません。しかし、そうすることは、非常にそうする正当な理由がない限り、一般的に不道徳です(たとえば、クライアントのWebサイトでセキュリティ監査を行うためにセキュリティ会社に雇われています)。

8
Ben Richards

繰り返しますが、違います。データベースに保持されているバックエンドデータではなく、コンパイルされたWebページのみを取得します。

WebサイトのルートへのFTPアクセスが必要です。そこから、バックエンドを含むミラーを取得できます。ただし、データベースがWebサイトのパスに含まれている場合に限ります。そうでない場合は、ポートを開いてデータベースにクエリを実行し、ミラーを構築するか、ホスティング業者にデータベースのコピーを提供するように依頼する必要があります。

2
Durley Hunter

いいえ、これはWebサイトに深刻なセキュリティホールがない限り不可能です。

PHPはWebサーバー上で実行され、クライアントに生で配信されることはありません。むしろ、クライアントはPHPコードを実行した後、PHPインタープリターから出力を受け取ります。

同様に、データベースバックエンドにはクライアントがアクセスできず、クライアントはデータベースバックエンドに対して直接クエリを実行することもできません。

2
Andrew Lambert

簡単な答えは「いいえ」です。クライアント側からは、Webページまたはwgetを使用してのみコンテンツにアクセスできます。 SQLデータベースのデータは、ブラウザに表示するためにアプリによって抽象化されます。サイトの完全な「バックアップ」を実行するには、サーバー側のコンテンツ、sqk、phpファイルなどにアクセスする必要があります。

0
uSlackr