この記事では主に、ファイル システム セキュリティ、データベース セキュリティ、PHP のその他のセキュリティ関連の問題について説明します。root を持っている場合は、ファイル システム セキュリティ
php を参照してください。権限があり、ユーザーがスクリプトでファイルを削除することが許可されている場合、ユーザーがフィルタリングせずにデータを送信すると、システム ファイルが削除される可能性が非常に高くなります<?php
// 从用户目录中删除指定的文件
$username = $_POST['user_submitted_name'];
$userfile = $_POST['user_submitted_filename'];
$homedir = "/home/$username";
unlink ("$homedir/$userfile");
echo "The file has been deleted!";
?>
上記のコードは、ユーザーが送信した $userfile 値が../etc/, then/ etc ディレクトリが削除されます
ファイル システム攻撃を防ぐための戦略は次のとおりです
PHP に限定された権限のみを与えます
ユーザーが送信した変数は監視およびフィルタリングする必要があり、特殊文字を含めることはできませんファイルパスなど
2. データベース セキュリティ
データベース セキュリティは、主に SQL インジェクション、つまり SQL インジェクション攻撃を防止します。 データベース セキュリティ戦略は次のとおりです:
root アカウントやデータベース所有者アカウントを使用する必要はありません データベースに接続
php の pdo 拡張機能を使用して、SQL インジェクションを効果的に防止します。セキュリティ上の利点に加えて、php の pdo 拡張機能にはパフォーマンスの面でも大きな利点があります http://php.net/ を参照してください。 Manual/en/pdo.prepared-statements.phpパスワードの暗号化など、一部の機密情報を暗号化します
3. ユーザーデータのフィルタリング
ユーザーデータをフィルタリングすると、XSS および CSRF 攻撃を防ぐことができます
ホワイトリストを使用します (ユーザー入力は固定パターン)たとえば、ユーザー名に数字と文字のみを使用できる場合、
ctype_alnum を使用して判断できます
はい、ユーザー入力は関数 htmlentities または htmlspecialchars を使用して処理されます 入力 URL は許可されていません。受信する非 http プロトコル
ユーザー認証はトークン トークン (csrf) を使用します http://htmlpurifier.org/ HTML Purifier は XSS 攻撃を防ぐためのオープンソースです 効果的な解決策
4. 他のセキュリティ戦略
でのエラー報告をオフにしますオンライン環境 (error_reporting
、dislay_erros、エラー情報を記録するために php.ini で error_log パスを設定できます。これは、潜在的なユーザー攻撃の検出に役立ちます) グローバルの登録、非推奨 (削除) 機能、使用しないでください マジック クオート機能有効にしないでください。PHP-5.4 では削除されています 最新バージョンの PHP を使用してください。最新バージョンでは、多くの既知のセキュリティ脆弱性とバグが修正されています
コード内で上記の戦略を厳密に遵守することで、基本的にコードがセキュリティホールがあまりなく、一般的な攻撃を防ぐことができます。
以上がPHP の 4 つの主要なセキュリティ戦略をご存知ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。