web-dev-qa-db-ja.com

Safariは私のphpソースを一度ダウンロードしました。心配する必要がありますか?

FTP経由でアップロードしてから、スクリプトのURLをSafariに入力しました。 Safariがソースをダウンロードしました!!

このホスティングサイトにはneverが実行されています-.phpスクリプトは常に実行されています。

複製できません。これで、ページがphpとしてロードされます。

たぶん、いくつかの.htaccess設定が変更されている間に私はそれらをキャッチしましたか?

多分私のデバッグ行ini_set( 'display_errors'、 'stdout');これを許可しましたか?

ページに「コンパイル失敗」エラーがありました。

だから今、私は私のずさんな方法を変えて、それがビューに公開されるようなphpコードを書かなければなりません。

何がこの異常を引き起こしたのでしょうか?

OK、起こったのは、最近、.htaccessファイルを変更して、新しいバージョンのphpを使用するようになったことです。いいね。しかし、その.htaccessファイルもローカルサーバーにダウンロードしました。ローカルのWebアドレスはサイトに似ています。つまり、手探りで、Safariが私のローカルサイトでアドレスを自動入力したことに気づきませんでした。ローカルサイトは、スクリプトを実行していない新しいバージョンのphpでスクリプトを実行しようとしていたため、スクリプトをダウンロードとして配信しました。最善の方法ではないと思いますが、少なくともライブサーバーではありませんでした。

そのため、公開されたphpについて「心配する必要があります」という質問を変更しました。結局のところ、ローカルサーバーがスクリプトテキストをいくつかの条件下で配信する場合、ライブサーバーも可能でしょうか。

4
Bobbi Bennett

ここでの本当の鍵は、偶然にダウンロードされる可能性がある場所に重要なPHPコードが含まれないようにすることです。

理想的なシナリオは、ユーザーが要求するページが最小限のPHPコードを含む最小限のインデックスページであり、他のPHP = Webアクセス可能領域外のディレクトリにあるスクリプト。

このベストプラクティスは、この場合に発生したと思われる、サーバー構成の偶発的な失効から保護します。

これが質問に直接答えることはありません。 (受け入れられた回答ごとの)直接の回答は、それが実際に一時的な失効であったと思われます。このような失効が発生し、一時的なものであってもサイトのセキュリティを完全に危険にさらす可能性があると考えるのは少し不快です。しかし、実際に発生する可能性があり、責任ある開発者/サイト管理者として、発生前に被害を軽減するための措置を講じる必要があります。構成ファイルが誤って削除または変更された場合、またはハッカーがセキュリティの最上位レイヤーを回避できた場合に何が起こるかを理解する必要があります。また、セカンダリレイヤーをセーフティネットとして組み込む必要があるため、被害を制限できます。 (またはより可能性が高いときに)それらのことが起こります。

5
SDC

説明されているように、サーバーのphp設定を確認してください ここ

AddType application/x-httpd-php .php httpd.confファイル内。
使用する <?php の代わりに <?

5
Refineo

PHPソースをユーザーに提示できる唯一の方法は、サーバー構成がオフの場合です。ブラウザはWebサーバーから提示された情報にのみアクセスでき、WebサーバーはPHPプロセスa PHPスクリプトを処理し、結果を返します。PHPスクリプトがブラウザに送信された場合、サーバー構成がオフになっています。これが1ページだけで発生した原因は誰かと思われますが、ハンドラーに最近変更があった場合は、新しいハンドラーを配置する直前に古いハンドラーを削除していた可能性があります。タイミングに幸運でした。

2
AJ Henderson

これはSafariではなく、サーバーの問題のようです。一部のサーバーは、デフォルトでPHPファイルをブラウザに送信して、PHPコードを解析できない場合、ダウンロードする必要があります。これが一度だけ発生した場合、 PHPインタプリタの小さなバグかもしれませんが、これが頻繁に発生する場合は、PHPを更新するか、使用している場合はホストに確認することをお勧めします。

1
gggggeg