1

ディレクトリ構造に関するドキュメントは数多くありますが、そのほとんどは MVC ディレクトリ構造に関するものです。しかし、フレームワークや MVC を使用したくない場合はどうすればよいでしょうか?

  • 一部の人々は、「公開ディレクトリの上に移動する必要はありません。パスワード保護で十分です (第 1 オプション)」と言っています。
  • 「すべての重要なファイルを public_html の外に置く (2 番目のオプション)」という人もいます。
  • 「public_html 内に index.php、css、および js ファイルのみを配置する (3 番目のオプション)」と言う人もいます。

私は本当に混乱しています。

最初のオプション:

/public_html
   /css
   /images
   /libs
 index.php
 profile.php
 search.php

2 番目のオプション: 引き続き ww.mysite.com/index.php、ww.mysite.com/profile.php .. リンク構造を使用できます

/libs
/public_html
      /css
      /images
    index.php
    profile.php
    search.php

3 番目のオプション: 私のリンクは次のようになります: ww.mysite.com/index.php?view=search

/view
  -profile.php
  -search.php   
/libs
/public_html
    /css
    /images
  index.php

ベストプラクティスはどれですか?ディレクトリ構造はセキュリティに関係しますか? すべての助けに感謝します!

4

2 に答える 2

5

3 番目のオプションが最適だと思いますが、さらに拡張する場合は拡張します (以下を参照)。ファイルがインターネットから直接アクセスできる場合、問題が発生した場合に情報を提供できる可能性があります。

1 番目と 2 番目のオプションでは、MIME タイプが間違って設定されている場合、またはその他の理由で PHP がファイルを解析しない場合、通常はtext/htmlプレーン テキストとして表示されます。1 番目と 2 番目のオプションでは、これは誰かがデータベース ログインなどの情報を取得できる可能性があることを意味します。

私は通常、オプション 3 と同様に設定しますが、すべてを別のインデックス ファイルに渡し、URI をファイルと一致させず、フォルダーからファイルview=searchを取得することを示します。この設定についてはわかりませんが、これは個人的な好みです。search.phpview

私のセットアップは次のようになります

/private
    /view
        -profile.php
        -search.php
    /libs
    -index.php
/public_html
    /css
    /images
    -index.php  

public_html/index.phpプレーンテキストとして渡された場合、プライベートな意味に渡すだけです。ファイルが別のディレクトリに保存されていることを除いて、情報は提供されません。すべての処理はprivate/index.php

<?php

    require_once('../private/index.php');

構成エラーがあっても、このセットアップで深刻な問題を発見したことはありません。

于 2013-02-24T05:44:23.220 に答える
2

フォルダー構造については、MVC やフレームワークの使用などとは関係ありません。公開ディレクトリにないファイルは、(理論的には) ユーザーが直接アクセスすることはできません。MVC フレームワークはそのファイル構造を選択します。これは、優れたプラクティスについてプログラマーを教育するための優れたプラクティスであるためです。

フレームワークの使用を拒否することは、優れたプラクティスについて自分自身を教育することを拒否することです。

私はあなたのコードを見ませんでしたが、リクエストのクエリパラメーターに基づいて直接phpファイルを取得できるようにしている場合は、(セキュリティの観点から)問題があります。そのため、フレームワークは、URL が要求される方法から PHP ファイル階層を分離するために、フロント コントローラー パターン、コントローラー、およびルーターを実装します。

于 2013-02-24T05:52:27.640 に答える