ホームページ >バックエンド開発 >PHPチュートリアル >PHP アプリケーションの問題に対する包括的な解決策_PHP チュートリアル
PHP は型指定されていませんが、基礎となる C 実装エンジンは型指定されているため、== 比較演算子は注意して使用してください。最終的には型変換が行われます。たとえば、0=="abc" の結果は true ですが、セマンティクスが明確な型である場合は、関連する関数を使用して明示的に変換する必要があります。 : 間隔。 。 。
PHP ファイルのインクルード パスを 1 か所で定義します。これにより、プロジェクト内のさまざまな場所にファイルをインクルードするときに、パスを指定せずにファイル名だけを指定することで、ファイル転送が容易になります
PHP アプリケーションに関するもう 1 つの問題は、直接インクルードしないことです。 function 内では、クラス メソッドで PHP グローバル変数を使用しますが、グローバル変数にアクセスするための別のプロキシを提供する必要があります。これは、オブジェクトまたは単純な関数にすることができます。グローバル変数がクラスでアクセスされる場合は、プロキシ グローバルを使用するように変更します。関数内でグローバル変数またはグローバル外部の変数を直接使用しないでください。関数パラメータによって渡されたデータのみを使用する必要があります。グローバル変数を使用したり、どこでもグローバルにしたりしないようにし、フォームの繰り返しの送信には注意してください。これはトークンの形式を取ることができます。
システムがシングルエントリーかマルチエントリーかを決定します
エンコーディングに注意してください: ファイルストレージエンコーディング、ページエンコーディング、データベースエンコーディング、ユーザーのオペレーティングシステムエンコーディング (ユーザーがアドレスにコンテンツを直接入力する場合は FF、Opera はコンテンツはオペレーティング システムのエンコード urlencode エンコード、および IE6 に従ったものになります)
ファイル パスを公開しないでください
リクエストを送信した後、ユーザーはブラウザを閉じるか、ブラウザの停止ボタンをクリックするか、ネットワークが切断されている場合に、他の理由、PHP が処理を続行するか停止するか、PHP は上記の状況をどのようにして知るのでしょうか: 接続処理 (ignore_user_abort、register_shutdown_function、connection_status...)
タイムゾーンの問題、アプリケーションが分散されている場合
アプリケーションを展開するnull 値は 1 つの項目を含む配列を生成します: array("") が、後者は false ではありません。つまり、null は false 値ですが、explode(',',null) の後は true 値になるため、if(explode(',',$var))
$var = null; のような条件には注意してください。 isset($ var) の結果は false になります。
PHP アプリケーションのセキュリティ問題
入力を確認し、ユーザーからのデータ (GET、POST、COOKIE) を信頼しないでください。PHP アプリケーションの場合、XSS を防止するために HTML タグをエンコードするなど、これらのデータを均一にフィルターする必要があります。 SQLインジェクション。
同時に、PHPはクライアント上での様々な検証(擬似フォーム、jsやfirebugなどのhtmlを任意に改変できるツールの無効化)が簡単にスキップできるため、一度検証する必要がある内容を検証する必要があります。
ユーザーが送信するデータのサイズに注意してください。たとえば、post データまたは get データが大きすぎる場合、サーバー上の PHP 以外のファイルにはバッファ オーバーフローの問題が発生する可能性があります。アプリケーションがファイルをアップロードまたはダウンロードできる場合は、ファイル名を使用してファイルを直接読み取ることは避けてください。ファイル名はユーザーによって提供されますが、PHP プログラムはそれらのファイルを読み取ります。同時に、返された HTML にファイル パスを表示しないでください。ファイルの保存パスは、ユーザーがこれらのパスに基づいて推測する可能性があります
。ファイルに保存されており、Web サーバー上に他の不明なユーザー (レンタルした Web ホストなど) が存在する場合は、セッション ファイルの保存場所を変更するか、PHP セッション ハンドラーを通じてセッションをデータベースに書き込む必要があります。デフォルトではセッションは一時ディレクトリに保存され、他人がアクセスできるようになりますが、セッションにパスワードなどの情報が保存されると大変危険です。
上記は、PHP アプリケーションの問題に対する関連する解決策です。
www.bkjia.com