1

今すぐ安全なログインの形式を試してみてください。データベースに接続するphpファイルはWebルートpublic_htmlの上に保存されるため、一般にアクセスすることはできません。

私の最初の質問は、Javascriptでこのphpファイルを呼び出すことはできないと人々が言っ​​ているということです。

Javascriptはクライアント側で実行され、情報を公開する可能性があるため、これは理にかなっていますが、このphpファイルを安全に呼び出す方法について少し混乱しています。

Webルートの上にコンテンツセンシティブなファイルを呼び出す別のPHPファイルをWebルートの下に置く必要がありますか?

これは「../../some-folder-above-web-root/some-php-above-web-root.php」で実現できますか?そうでない場合は、phpファイルの場所がわかります。ウェブルートで?または、人々がそれにアクセスできないため、場所は重要ではありません(..ハッカー)。

全体として、私は本当にWebルートの上のスクリプトと適切かつ安全に通信する方法を知りたいだけです。

4

2 に答える 2

2

はい。それで合っています。Webルートの上にある保護されたPHPファイルにアクセスするPHPファイルがWebルートの下にあるはずです。Zend Frameworkには、bootstraperと呼ばれる単一のindex.phpファイルがあり、次のような多くのことを実行します。

  • エラー表示レベルを設定する
  • インクルードパスを設定します
  • グローバル定数を定義する
  • 構成ファイルを読む
  • ライブラリクラスをロードする
  • フロントコントローラーを入手する
  • データベース接続を構成する
  • RESTful URL、およびMVCごとにルートを決定します
  • 例外処理を設定します
  • 要求されたコントローラーを呼び出す

MVCフレームワークを使用することを強くお勧めします。これらは業界標準であり、安全なログインを含む多くの一般的な問題に対して事前に構築された機能を備えています。Zend Frameworkは、アクセス制御リストスタイルのセキュリティを実装していますが、独自の役割を簡単に果たすことができます。その他の注目すべきフレームワークは、Drupal、Yii、Codeigniter、Symphony、CakePHP、およびJoomlaです。

セキュリティに関するその他のベストプラクティスは次のとおりです。

  • ファイル拡張子やファイルタイプではなく、mimetypeに基づいてすべてのファイルアップロードをフィルタリングします
  • データベーステーブルの列タイプと長さに基づいて、すべてのPOSTデータとGETデータをフィルタリングします
  • 実行する前にすべてのSQL文字列をサニタイズします
  • サーバー上のすべてのデフォルトのログインパスワードを変更します。例:Apache、MySQL、FTP、SSH、SVNなど。
  • php.ini、httpd.confなどを設定する方法を学びます。
  • フレームワーク、PHP、Apache、およびMySQLで使用されていないサービス、モジュール、およびプラグインを無効にします
  • コードをファズする
  • 単体テストを使用する
  • ペネトレーションテストについて少し学ぶ
于 2013-01-08T16:18:16.150 に答える
1

これらのファイルに、たとえば754(rootのすべてのアクセス許可、グループの読み取りと実行、その他の読み取り専用)など、他のファイルに読み取り専用のアクセス許可を与えることができます。次に、たとえばfile_get_contents、絶対パスを使用してその内容を読み取ることができます。

これを行う一般的な方法は、パブリックWebディレクトリの外部に構成ファイル(適切な情報を含む)を用意し、絶対パスを使用してそれを読み取り、変数として使用することです。

パブリックWebパスの外部でスクリプトを実行する場合は、「その他」にEXECUTE権限を付与する必要がありますが、これはあまり安全ではありません。

また、javascriptに関する質問については、セキュリティに関するものではありません。javascriptコードはサーバーでは実行されません。適切な情報を含むファイルは、クライアントブラウザーで実行されるため、ここで読み取るものはありません。

于 2013-01-08T16:10:51.810 に答える