以下の構造を使用することをお勧めします。セキュリティの観点から、誰かが理由を説明してもらえますか (徹底的に説明できれば幸いです)。これの他の利点はありますか?
- 根
- アプリ
- application_folder
- 構成
- コントローラー
- モデル
- public_html
- CSS
- js
- 画像
- index.php
- .htaccess
- アプリ
編集:
サーバーがハッキングされた場合、影響はありますか?
アイデアは、ユーザーがアクセスできるものだけが に配置されるpublic_html
ため、インターネット上のランダムな人々が正しい URL を推測した場合にコードやデータのランダムな部分にアクセスできないようにすることです。
これを行う通常の方法は、アプリ内に public フォルダーを作成し、それを public_html またはその下にシンボリック リンクすることであり、実際にアプリケーションを 2 つの部分に分割することはありません。
以前のプロジェクトでは、顧客の構成ファイルをpublic_html
フォルダーの外に置きました。可能ですが、PHPファイルを含めるときは、このようなことをしました
<?php
require_once('/home/brandon/config/config.php');
?>
これの代わりに:
<?php
require_once('/home/brandon/public_html/config.php');
?>
私はこの問題に苦労してきました。多数の Web サイトを管理していたので、php ライブラリを public フォルダーの下のサブディレクトリに配置し、インクルードで相対パスを使用してそれらを参照することにしました。このように、開発サーバーと本番環境でパスを実行/テストするためにパスを変更する必要はありません。
昨年、クライアントの Web サイトの 1 つが繰り返しハッキングされ始めました。ハッカーはどうにかして FTP アカウントにアクセスし、独自のファイル (php を含む) を挿入し、一部を置き換えたり削除したり、ディレクトリを作成したりしました。すべてのディレクトリを755に、ファイルを644パーマに設定しているにもかかわらず、これはすべてです。もちろん、FTP アカウントを取得したらゲームオーバーです。もう一度やり直してください。
彼らは現在、サイトを 6 回ハッキングしています (私が知っていることです)。これは、これまでにハッキングされた唯一のサイトです。PHPライブラリファイルをパブリックフォルダーの外に移動することに意味があるかどうかを検討しています(とにかく、このサイトの場合)。これらのファイルはいずれも、ブラウザー経由でダウンロード/表示できないことを確認しました (空白のページを取得し、空白のソース ページを表示)。
また、SFTP、安全なパスワードを使用し、SQL インジェクション攻撃から保護しています。
ハッカーはサードパーティのクラッキング サービスを使用して、少なくとも 1 回はこのサイトにアクセスしました。毎回、彼らはサイトに対して、またはサイトで何か違うことをします。このサイトは PayPal のみを使用するため、顧客データはオンサイトに保存されません。彼らは、PayPal に送信された電子メール アドレスを置き換えて、支払い先の販売者アカウントを識別しましたが、顧客は実際に支払うことができなかったようです (ハッカーはおそらく PayPal アカウントを持っていません)。
残りの 1 つの可能性は、店舗のコンピューターのキー ロガーです。私は数日でそれをリンガーに通します。
もちろん、ホスティング プロバイダーはこの問題とは何の関係もありません。彼らは「スキャン」を行い、ハッカーによって作成、置換、または削除された 21 個のダーティ ファイル (ディレクトリは数えません) のうち 5 個しか見つかりませんでした。彼らは私に「サイトロック」サービスの料金を支払うように言い続けていますが、これはまったく役に立たず、完全にお金の無駄遣いのようです。
共有ホスティングの状況でのセキュリティを非常に詳細に扱い、良い例がたくさんある包括的な「ハッカー対策クックブック」を見つけたいです。そのようなことはありますか?