ホームページ  >  記事  >  バックエンド開発  >  4 つの主要な PHP セキュリティ戦略_PHP チュートリアル

4 つの主要な PHP セキュリティ戦略_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-13 10:36:05806ブラウズ

1. ファイル システムのセキュリティ
php に root 権限があり、ユーザーがスクリプト内のファイルを削除できる場合、ユーザーはフィルタリングせずにデータを送信するため、システム ファイルが削除される可能性が高くなります

//指定されたファイルをユーザーディレクトリから削除します
$username = $_POST['user_submitted_name'];
$userfile = $_POST['user_submitted_filename'];
$homedir = "/home/$username ";
unlink ("$homedir/$userfile");
echo "ファイルは削除されました!";
?>
上記のコードは、ユーザーによって送信された $userfile 値が ../etc/ であることを前提としています。 then / etcディレクトリは削除されます
ファイルシステム攻撃を防ぐための戦略は次のとおりです

PHP には制限された権限のみを与えてください
ユーザーが送信した変数は監視およびフィルタリングする必要があり、ファイル パスなどの特殊文字を含めることはできません
必要な場合は、PHP を使用したファイルの操作を避けるようにしてください。ファイルも削除します。これはシステムによって生成されるランダムな名前であり、ユーザーが制御することはできません
2. データベース セキュリティ
データベース セキュリティは主に SQL インジェクション、つまり SQL インジェクション攻撃を防止します。以下に続きます:

データベースに接続するのに root アカウントやデータベース所有者アカウントを使用する必要はありません。
SQL インジェクションを効果的に防止するために php の pdo 拡張機能を使用します。 , 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 は、dislay_erros を防ぐ効果的なオープンソース ソリューションです。php で error_log パスを設定できます。 .ini を使用してエラー情報を記録し、ユーザー攻撃の可能性を検出するのに役立ちます)
グローバルの登録、非推奨 (削除) 機能、使用しないでください マジッククオート機能、有効にしないでください、PHP-5.4 で削除されました
を使用してみてくださいPHP の最新バージョン。最新バージョンでは、多くの既知のセキュリティ ホールとバグが修正されています。コード内で上記の戦略を厳密に遵守し、コードに多くのセキュリティ ホールが存在しないことを基本的に保証します。





http://www.bkjia.com/PHPjc/740660.html

www.bkjia.com

tru​​ehttp://www.bkjia.com/PHPjc/740660.html技術記事 1. ファイル システムのセキュリティ。PHP に root 権限があり、ユーザーがスクリプト内のファイルを削除できる場合、ユーザーがフィルタリングせずにデータを送信すると、システム ファイルが削除される可能性が非常に高くなります。
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。