著者: san
1. コンパイル時に既知の脆弱性のパッチに注意してください
4.0.5 以降、PHP のメール関数には 5 番目のパラメーターが追加されましたが、これは適切にフィルタリングされないため、PHP アプリケーションはセーフモードの制限を突破できます。したがって、4.0.5 および 4.0.6 を使用する場合は、コンパイル前に php ソース コード パッケージ内の ext/standard/mail.c ファイルを変更して、メール関数の 5 番目のパラメーターを無効にするか、シェル文字をフィルターする必要があります。 mail.c
ファイルの 152 行目、これは次の行です:
if (extra_cmd != NULL) {
その後に extra_cmd=NULL; または extra_cmd = php_escape_shell_cmd(extra_cmd);
次に php をコンパイルします。脆弱性は修正されました。
2. php.ini設定ファイルを修正します
phpディストリビューション版のphp.ini-distを元に修正します。
1)エラー処理とログ
エラー処理とログセクションでいくつかの設定を行うことができます。最初の検索:
display_errors = On
デフォルトでは、php はエラー メッセージの表示をオンにします。これを次のように変更しました。
display_errors = Off
エラー表示をオフにすると、php 関数の実行エラー メッセージは表示されなくなります。したがって、攻撃者がエラー メッセージからスクリプトの物理的な場所やその他の有用な情報を知ることをある程度防ぐことができ、少なくとも攻撃者のブラック ボックス検出に対して一定の障害が生じます。これらのエラーメッセージは、指定されたファイルに書き込み、次のように変更できます。 /apache/logs/php_error.log
error_log = /usr/apache/php_error.log
php_error.log ファイルに書き込まれます。
2)セーフモード
phpのsafe_mode関数は、多くの機能を制限または無効にし、phpの
セキュリティ問題を大幅に解決できます。 [セーフモード] セクションで:
safe_mode = Off
を見つけて、次のように変更します:
safe_mode = On
これにより、safe_mode 機能がオンになります。システムコマンドを実行できる Shell_exec() や `` などの一部の関数は禁止され、exec()、system()、passthru()、popen() などの他の実行関数は、ディレクトリ内のファイルの実行のみに制限されます。 safe_mode_exec_dir プログラムによって指定されます。本当にいくつかのコマンドまたはプログラムを実行したい場合は、以下を見つけてください:
safe_mode_exec_dir =
実行するプログラムのパスを次のように指定します:
safe_mode_exec_dir = /usr/local/php/exec
次に、プログラムを次の場所にコピーします。 /usr/local/php/exec ディレクトリにあるため、上記のような制限された機能もこのディレクトリ内のプログラムを実行できます。
セーフ モードでの制限された機能の詳細については、メインの PHP サイトの手順を参照してください:
http://www.php.net/manual/en/features.safe-mode.php
3) disable_functions
一部の機能の有害性についてよく知らず、使用していないため、単純にこれらの機能を禁止した場合。次の行を見つけます:
disable_functions =
無効にする機能を「=」の後に追加し、複数の機能を「,」で区切ります。
3. httpd.conf を変更する
php スクリプト プログラムが Web ディレクトリでのみ動作することを許可する場合は、httpd.conf ファイルを変更して php の操作パスを制限することもできます。たとえば、Web ディレクトリが /usr/local/apache/htdocs の場合、次の行を
httpd.conf に追加します:
php_admin_value open_basedir /usr/local/apache /htdocs
このように、スクリプトが /usr/local/apache/htdocs 以外のファイルを読み込もうとした場合、それは許可されません
エラー表示がオンになっている場合、
が実行されます。次のようなエラーが表示されます:
警告: open_basedir 制限が有効です。ファイルが 4 行目の
/usr/local/apache/htdocs/open.php に間違ったディレクトリにあります
など。
4. php コードをコンパイルする
Zend は php に多大な貢献をしており、php4 のエンジンは Zend に基づいており、ZendOptimizer や ZendEncode などの多くの php 拡張コンポーネントも開発しています。オプティマイザー ZendOptimizer は、
http://www.zend.com に登録するだけで無料で入手できます。以下は 4.0.5 および 4.0.6 の ZendOptimizer です。ファイル名はそれぞれのシステムのものです:
ZendOptimizer - 1[1].1.0-PHP_4.0.5-FreeBSD4.0-i386.tar.gz
ZendOptimizer-1[1].1.0-PHP_4.0.5-Linux_glibc21-i386.tar.gz
ZendOptimizer-1[1]。 -PHP_4.0.5-Solaris-sparc.tar.gz
ZendOptimizer-1[1].1.0-PHP_4.0.5-Windows-i386.zip
オプティマイザーのインストールは非常に便利で、詳細な手順はパッケージ。 UNIX バージョンを例に挙げると、オペレーティング システムを確認し、パッケージ内の ZendOptimizer.so ファイルをディレクトリ (/usr/local/lib であると仮定) に解凍し、2 つの文を php.ini に追加します: optimization_level=15。
zend_extension="/usr/local/lib/ZendOptimizer.so"
以上です。 phpinfo() を使用して、Zend アイコンの左側に次のテキストを表示します。
with Zend Optimizer v1.1.0、Copyright (c) 1998-2000、by Zend Technologies
これで、オプティマイザーは正常に接続されました。
ただし、コンパイラ ZendEncode は無料ではありません。これは
http://www.PHPease.com の Ma Yong によって設計されたコンパイラ シェルです。商業目的で使用する場合は、
http://www.zend .com までご連絡ください。ライセンス契約を取得します。
PHP スクリプトがコンパイルされると、スクリプトの実行速度が大幅に向上し、スクリプト ファイル内で文字化けが確認されるだけになります。これにより、攻撃者がサーバー上のスクリプト プログラムをさらに分析することができなくなります。そして、それは元々 php スクリプトにプレーンテキストで保存されました
mysql パスワードなどのパスワードも機密に保たれます。ただし、サーバー側でスクリプトを変更するのは面倒です
ローカルで変更してからアップロードする方が良いです。
5. ファイルとディレクトリの権限設定
アップロードディレクトリに加えて、Web ディレクトリ内の他のディレクトリとファイルの権限は、nobody ユーザーに書き込み権限を与えないようにする必要があります。そうしないと、攻撃者がホームページ ファイルを変更する可能性があるため、Web ディレクトリのアクセス許可を適切に設定する必要があります
。 また、セーフモードでファイルを読み取る機能が制限されているため、PHP スクリプトの所有者は root であってはなりません
読み取るファイルの所有者は、現在実行中のスクリプトの所有者と同じである必要があります。それ以外の場合
エラー 表示がオンになっている場合、次のようなエラーが表示されます:
警告: SAFE MODE 制限が有効です。uid が 500 のスクリプトは、
が所有する /etc/passwd にアクセスできません。 uid 0 in /usr/local/apache/htdocs/ open.php
3 行目
このようにして、/etc/passwd などの多くのシステム ファイルが読み取られるのを防ぐことができます。
アップロード ディレクトリとアップロード スクリプトの所有者も同じに設定する必要があります。そうしないと、セーフ モード
でエラーが発生します。
6. Mysql の起動許可設定
mysql は root で起動しないでください。別の mysqladm ユーザーを作成するのが最善です。システム起動スクリプトに次のような文を追加できます
/etc/rc.local:
su mysqladm -c "/usr/local/mysql/share/mysql/mysql.server start"
このようにすると、システムの再起動後に自動的に使用されます。 mysqladmin ユーザーが mysql プロセスを開始します。
7. ログ ファイルとアップロード ディレクトリの確認
ログを表示することは、干し草の山から針を探すようなもので、人間の怠惰と大きく関係しています。 。 Web によってアップロードされたディレクトリ内のファイルも頻繁にチェックする必要があります。プログラムに問題があり、ユーザーがスクリプトの実行など、違法なファイルをアップロードした可能性があります。
8. オペレーティング システム自体のパッチ
システム内の既知の脆弱性にパッチを適用するのと同じように、これはシステム管理者の最も基本的な責任であり、最後の防御線でもあります。
上記の設定後は、難攻不落とは言えませんが、攻撃者のテストにもある程度迷惑をかけています。たとえphpスクリプトプログラムに重大な脆弱性があったとしても、攻撃者はそれを防ぎます。実際に損害を与える可能性があります。もっと奇妙で倒錯的な設定方法がある場合は、一緒に共有していただければ幸いです;)

この記事では、PHPについて説明し、その完全なフォーム、Web開発での主要な使用、PythonとJavaとの比較、および初心者の学習のしやすさについて説明します。

PHPは、$ \ _ postおよび$ \ _を使用してフォームデータを処理し、検証、消毒、安全なデータベースインタラクションを通じてセキュリティを確保します。

この記事では、PHPとASP.NETを比較して、大規模なWebアプリケーション、パフォーマンスの違い、セキュリティ機能への適合性に焦点を当てています。どちらも大規模なプロジェクトでは実行可能ですが、PHPはオープンソースであり、プラットフォームに依存しませんが、ASP.NET、

PHPの症例感度は変化します:関数は鈍感であり、変数とクラスは感度があります。ベストプラクティスには、一貫した命名と、比較のためにケース非感受性関数を使用することが含まれます。

この記事では、PHPのページリダイレクトのさまざまな方法について説明し、ヘッダー()関数に焦点を当て、「すでに送信されているヘッダー」エラーなどの一般的な問題に対処します。

記事では、PHPでヒントを示すタイプについて説明します。これは、機能内の予想データ型を指定する機能です。主な問題は、タイプの施行を通じてコードの品質と読みやすさを改善することです。

この記事では、PHPのデータベースアクセスの拡張機能であるPHPデータオブジェクト(PDO)について説明します。これは、データベースの抽象化やより良いエラー処理など、準備されたステートメントとMySQLIに対する利点を通じてセキュリティを強化する上でのPDOの役割を強調しています。

記事では、PHP APIの作成とセキュリティについて説明し、LaravelなどのフレームワークやBest Security Practicesなどのフレームワークを使用して、エンドポイントの定義からパフォーマンスの最適化までの手順を詳細に説明します。


ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

EditPlus 中国語クラック版
サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません

メモ帳++7.3.1
使いやすく無料のコードエディター

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

AtomエディタMac版ダウンロード
最も人気のあるオープンソースエディター

ホットトピック









