ホームページ  >  記事  >  バックエンド開発  >  PHP の 4 つの主要なセキュリティ戦略をご存知ですか?

PHP の 4 つの主要なセキュリティ戦略をご存知ですか?

怪我咯
怪我咯オリジナル
2017-07-05 10:32:461178ブラウズ

この記事では主に、ファイル システム セキュリティデータベース セキュリティ、PHP のその他のセキュリティ関連の問題について説明します。root を持っている場合は、ファイル システム セキュリティ

php を参照してください。権限があり、ユーザーがスクリプトでファイルを削除することが許可されている場合、ユーザーがフィルタリングせずにデータを送信すると、システム ファイルが削除される可能性が非常に高くなります

<?php
// 从用户目录中删除指定的文件
$username = $_POST[&#39;user_submitted_name&#39;];
$userfile = $_POST[&#39;user_submitted_filename&#39;];
$homedir = "/home/$username";
unlink ("$homedir/$userfile");
echo "The file has been deleted!";
?>
上記のコードは、ユーザーが送信した $userfile 値が../etc/, then/ etc ディレクトリが削除されます
ファイル システム攻撃を防ぐための戦略は次のとおりです


PHP に限定された権限のみを与えます
ユーザーが送信した変数は監視およびフィルタリングする必要があり、特殊文字を含めることはできませんファイルパスなど

ファイルの操作 (削除) に PHP を使用しないようにしてください。この点で必要な場合、ユーザーが削除可能なファイルにもシステムによって生成されたランダムな名前が必要であり、ユーザーが制御することはできません


2. データベース セキュリティ

データベース セキュリティは、主に SQL インジェクション、つまり SQL インジェクション攻撃を防止します。 データベース セキュリティ戦略は次のとおりです:
root アカウントやデータベース所有者アカウントを使用する必要はありません
データベースに接続

、接続します。データベースに接続して接続ユーザーの IP を制限します

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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。