検索
ホームページバックエンド開発PHPチュートリアルPHPセキュリティ設定方法_PHPチュートリアル

PHPセキュリティ設定方法_PHPチュートリアル

Jul 13, 2016 pm 05:10 PM
phpそして安全性方法持っている比較するバージョン構成質問

PHP 自体にはいくら古いものであってもいくつかの問題があります。たとえば、php4.3.10 や php5.0.3 より前にはいくつかの重大なバグがあったため、新しいバージョンを使用することをお勧めします。さらに、現在人気の SQL インジェクションは PHP 上でさまざまな方法で使用できるため、セキュリティを確保するには、PHP コードの記述も 1 つの側面であり、PHP の設定が非常に重要です。

PHP を手動でインストールしました。PHP のデフォルト設定ファイルは /usr/local/apache2/conf/php.ini にあります。最も重要なことは、PHP をより安全に実行できるように php.ini の内容を設定することです。 PHP全体のセキュリティ設定は主にphpshellとSQLインジェクションによる攻撃を防ぐためのものです。ゆっくり説明していきます。まず、編集ツールを使用して /etc/local/apache2/conf/php.ini を開きます。他の方法でインストールした場合は、設定ファイルがこのディレクトリにない可能性があります。

(1) phpのセーフモードをオンにする

php のセーフ モードは、system()、

などの php の一部の関数を制御できる非常に重要な組み込みセキュリティ メカニズムです。

同時に、多くのファイル操作関数の権限が制御され、/etc/passwd などの特定の重要なファイルが許可されません。

ただし、デフォルトの php.ini ではセーフ モードが開かないので、セーフ モードを開いてみましょう:

セーフモード = オン

(2) ユーザーグループのセキュリティ

safe_mode がオンになり、safe_mode_gid がオフになった場合、PHP スクリプトはファイルにアクセスできますが、それは同じです

グループのユーザーもファイルにアクセスできます。

推奨設定:

safe_mode_gid = オフ

これを設定しない場合、サーバー Web サイトのディレクトリ内のファイルを操作できない可能性があります。たとえば、

ファイルを操作するとき。

(3) プログラムのホームディレクトリをセーフモードで実行

セーフ モードがオンになっているが、特定のプログラムを実行したい場合は、実行するプログラムのホーム ディレクトリを指定できます:

safe_mode_exec_dir = D:/usr/bin

通常、プログラムを実行する必要はないため、システム プログラム ディレクトリを実行しないことをお勧めします。

次に、実行する必要があるプログラムをコピーします。例えば:

safe_mode_exec_dir = D:/tmp/cmd

ただし、プログラムを実行しないことをお勧めします。その場合は、Web ディレクトリを指定してください:

safe_mode_exec_dir = D:/usr/www

(4) セーフモードでファイルを含める

一部のパブリック ファイルをセーフ モードに含める場合は、オプションを変更します:

safe_mode_include_dir = D:/usr/www/include/

実際、通常、php スクリプトに含まれるファイルはプログラム自体に記述されており、特定のニーズに応じて設定できます。

(5) PHPスクリプトがアクセスできるディレクトリを制御する

open_basedir オプションを使用して、指定されたディレクトリにのみアクセスするように PHP スクリプトを制御し、PHP スクリプトへのアクセスを回避できます

アクセスすべきではないファイルにより、phpshell の害はある程度制限され、通常は Web サイトのディレクトリのみにアクセスするように設定できます。

open_basedir = D:/usr/www

(6)危険な機能をオフにする

セーフモードがオンになっている場合、機能の禁止は必要ありませんが、安全性を考慮しております。たとえば、

コマンドを実行したり、php情報を表示したりできるsystem()を含むphp関数を実行する必要はないと考えています

phpinfo() およびその他の関数を禁止できます:

disable_functions = システム、パススルー、exec、shell_exec、popen、phpinfo

ファイルやディレクトリの操作を禁止したい場合は、多くのファイル操作を閉じることができます

disable_functions = chdir,chroot,dir,getcwd,opendir,readdir,scandir,fopen,unlink,delete,copy,mkdir, rmdir,rename,file,file_get_contents,fputs,fwrite,chgrp,chmod,chown

上記は、一般的に使用されるファイル処理関数の一部を示したものにすぎません。

上記の実行コマンド関数をこの関数と組み合わせることもできます。

ほとんどの phpshell に耐えることができます。

(7) httpヘッダー内のPHPバージョン情報の漏洩を遮断する

ハッカーがサーバー内の PHP バージョン情報を取得できないようにするために、http ヘッダーの情報をオフにすることができます:

expose_php = オフ

たとえば、ハッカーが www.chinaz.com 80 に Telnet した場合、PHP 情報を見ることはできません。

(8) グローバル変数の登録を閉じる

PHP で送信された変数 (POST または GET を使用して送信された変数を含む) は、グローバル変数として自動的に登録され、直接アクセスできます。

これはサーバーにとって非常に安全ではないため、グローバル変数として登録させることはできません。そのため、グローバル変数の登録オプションをオフにします。

register_globals = オフ

もちろん、これが設定されている場合は、GET によって送信された変数 var を取得するなど、適切な方法を使用して対応する変数を取得する必要があります。

その後、それを取得するには $_GET['var'] を使用する必要があります。PHP プログラマはこれに注意する必要があります。

(9) SQL インジェクションを防ぐために、magic_quotes_gpc をオンにします

SQL インジェクションは、Web サイトのバックエンドに侵入したり、サーバー全体がダウンしたりする可能性がある非常に危険な問題です。

だから気をつけてね。 php.ini に次の設定があります:

magic_quotes_gpc = オフ

これはデフォルトではオフになっています。オンにすると、ユーザーが送信した SQL クエリが自動的に変換されます。

たとえば、「 を 」に変換するなど。これは SQL インジェクションを防ぐ上で重要な役割を果たします。したがって、次のように設定することをお勧めします:

magic_quotes_gpc = オン

(10) エラーメッセージ制御

通常、php はデータベースに接続されていない場合、またはその他の状況下でエラーを表示します。一般に、エラー メッセージには php スクリプトが含まれます

前のパス情報やクエリ SQL ステートメントやその他の情報は、この種の情報がハッカーに提供された後は安全ではないため、通常はサーバーでエラー プロンプトを禁止することをお勧めします。

display_errors = オフ

エラー情報を表示したい場合は、エラー表示のレベルを必ず設定してください。たとえば、警告の上の情報のみを表示します:

error_reporting = E_WARNING & E_ERROR

もちろん、エラープロンプトをオフにすることをお勧めします。

(11) エラーログ

サーバーが実行されている理由を見つけるために、display_errors をオフにした後、エラー情報を記録することをお勧めします。

log_errors = オン

同時に、エラー ログを保存するディレクトリも設定する必要があります。ルート Apache ログも一緒に保存することをお勧めします。

error_log = D:/usr/local/apache2/logs/php_error.log

注: このファイルでは、Apache ユーザーとグループに書き込み権限を与える必要があります。

権限を減らしたMySQL操作

mysqlstart などの新しいユーザーを作成します

ネット ユーザー mysqlstart ****microsoft /add

ネットローカルグループユーザーmysqlstart /del

どのグループにも属していません

MYSQL が d:mysql にインストールされている場合は、mysqlstart にフルコントロール権限を与えます

次に、システム サービスで MYSQL サービス プロパティを設定し、ログイン プロパティでこのユーザー mysqlstart を選択し、パスワードを入力して確認します。

MYSQL サービスを再起動すると、MYSQL は低い権限で実行されます。

Apache が Windos プラットフォーム上に構築されている場合、Apache はデフォルトでシステム権限で実行されることに注意する必要があります。

これは恐ろしいことです。これは人々を非常に不快にさせます。それなら、Apache の権限を下げましょう。

ネットユーザー apache ****microsoft /add

ネットローカルグループユーザー apache /del

わかりました。どのグループにも属さないユーザー apche を作成しました。

コンピューターマネージャーを開き、サービスを選択し、Apacheサービスのプロパティをクリックし、ログオンを選択し、このアカウントを選択し、上記で作成したアカウントとパスワードを入力します、

Apache サービスを再起動します。Apache は低い権限で実行されています。

実際、Apache ユーザーが実行したいことのみを実行できるように各フォルダーの権限を設定し、ディレクトリごとに個別の読み取り/書き込みユーザーを作成することもできます。

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

tru​​ehttp://www.bkjia.com/PHPjc/629682.html技術記事 PHP 自体にはいくら古いバージョンであってもいくつかの問題があります。たとえば、php4.3.10 や php5.0.3 より前にはいくつかの重大なバグがあったため、新しいバージョンを使用することをお勧めします。さらに、今話題のSQLインジェクションも...
声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
PHPの目的:動的なWebサイトの構築PHPの目的:動的なWebサイトの構築Apr 15, 2025 am 12:18 AM

PHPは動的なWebサイトを構築するために使用され、そのコア関数には次のものが含まれます。1。データベースに接続することにより、動的コンテンツを生成し、リアルタイムでWebページを生成します。 2。ユーザーのインタラクションを処理し、提出をフォームし、入力を確認し、操作に応答します。 3.セッションとユーザー認証を管理して、パーソナライズされたエクスペリエンスを提供します。 4.パフォーマンスを最適化し、ベストプラクティスに従って、ウェブサイトの効率とセキュリティを改善します。

PHP:データベースとサーバー側のロジックの処理PHP:データベースとサーバー側のロジックの処理Apr 15, 2025 am 12:15 AM

PHPはMySQLIおよびPDO拡張機能を使用して、データベース操作とサーバー側のロジック処理で対話し、セッション管理などの関数を介してサーバー側のロジックを処理します。 1)MySQLIまたはPDOを使用してデータベースに接続し、SQLクエリを実行します。 2)セッション管理およびその他の機能を通じて、HTTPリクエストとユーザーステータスを処理します。 3)トランザクションを使用して、データベース操作の原子性を確保します。 4)SQLインジェクションを防ぎ、例外処理とデバッグの閉鎖接続を使用します。 5)インデックスとキャッシュを通じてパフォーマンスを最適化し、読みやすいコードを書き、エラー処理を実行します。

PHPでのSQL注入をどのように防止しますか? (準備された声明、PDO)PHPでのSQL注入をどのように防止しますか? (準備された声明、PDO)Apr 15, 2025 am 12:15 AM

PHPで前処理ステートメントとPDOを使用すると、SQL注入攻撃を効果的に防ぐことができます。 1)PDOを使用してデータベースに接続し、エラーモードを設定します。 2)準備方法を使用して前処理ステートメントを作成し、プレースホルダーを使用してデータを渡し、メソッドを実行します。 3)結果のクエリを処理し、コードのセキュリティとパフォーマンスを確保します。

PHPおよびPython:コードの例と比較PHPおよびPython:コードの例と比較Apr 15, 2025 am 12:07 AM

PHPとPythonには独自の利点と短所があり、選択はプロジェクトのニーズと個人的な好みに依存します。 1.PHPは、大規模なWebアプリケーションの迅速な開発とメンテナンスに適しています。 2。Pythonは、データサイエンスと機械学習の分野を支配しています。

アクション中のPHP:実際の例とアプリケーションアクション中のPHP:実際の例とアプリケーションApr 14, 2025 am 12:19 AM

PHPは、電子商取引、コンテンツ管理システム、API開発で広く使用されています。 1)eコマース:ショッピングカート機能と支払い処理に使用。 2)コンテンツ管理システム:動的コンテンツの生成とユーザー管理に使用されます。 3)API開発:RESTFUL API開発とAPIセキュリティに使用されます。パフォーマンスの最適化とベストプラクティスを通じて、PHPアプリケーションの効率と保守性が向上します。

PHP:インタラクティブなWebコンテンツを簡単に作成しますPHP:インタラクティブなWebコンテンツを簡単に作成しますApr 14, 2025 am 12:15 AM

PHPにより、インタラクティブなWebコンテンツを簡単に作成できます。 1)HTMLを埋め込んでコンテンツを動的に生成し、ユーザー入力またはデータベースデータに基づいてリアルタイムで表示します。 2)プロセスフォームの提出と動的出力を生成して、XSSを防ぐためにHTMLSPECIALCHARSを使用していることを確認します。 3)MySQLを使用してユーザー登録システムを作成し、Password_HashおよびPreprocessingステートメントを使用してセキュリティを強化します。これらの手法を習得すると、Web開発の効率が向上します。

PHPとPython:2つの一般的なプログラミング言語を比較しますPHPとPython:2つの一般的なプログラミング言語を比較しますApr 14, 2025 am 12:13 AM

PHPとPythonにはそれぞれ独自の利点があり、プロジェクトの要件に従って選択します。 1.PHPは、特にWebサイトの迅速な開発とメンテナンスに適しています。 2。Pythonは、データサイエンス、機械学習、人工知能に適しており、簡潔な構文を備えており、初心者に適しています。

PHPの永続的な関連性:それはまだ生きていますか?PHPの永続的な関連性:それはまだ生きていますか?Apr 14, 2025 am 12:12 AM

PHPは依然として動的であり、現代のプログラミングの分野で重要な位置を占めています。 1)PHPのシンプルさと強力なコミュニティサポートにより、Web開発で広く使用されています。 2)その柔軟性と安定性により、Webフォーム、データベース操作、ファイル処理の処理において顕著になります。 3)PHPは、初心者や経験豊富な開発者に適した、常に進化し、最適化しています。

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

SublimeText3 英語版

SublimeText3 英語版

推奨: Win バージョン、コードプロンプトをサポート!

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser は、オンライン試験を安全に受験するための安全なブラウザ環境です。このソフトウェアは、あらゆるコンピュータを安全なワークステーションに変えます。あらゆるユーティリティへのアクセスを制御し、学生が無許可のリソースを使用するのを防ぎます。

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強力な PHP 統合開発環境

Dreamweaver Mac版

Dreamweaver Mac版

ビジュアル Web 開発ツール

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール