実験の目的
「open_basedir リストディレクトリをバイパスする PHP の研究」の記事に従って、この記事の basedir をバイパスする方法が効果的であるかどうかを、さまざまな構成をテストすることで検証し、それによって PHP の open_basedir を安全に設定することができます。記事はすべてwindwosです Linuxでは、総当たりの推測が必要なため、テストは行われません
「DirectoryIterator + Glob」メソッドがopen_basedirをバイパスできるかどうかをテストします
実験環境
nginx + PHP 5.6.7 fastcgi モード、centos7 linux
以下で 1 つずつテストします
テストの詳細
でのみphp-fpm .conf の設定
php_admin_value[open_basedir]=/home/wwwroot/:/proc/:/tmp/
結果
Open_basedir はディレクトリ外で読み書きできないが、DirectoryIterator + Glob はすべてのファイルを正常にリストできる
open_basedir : /home/wwwroot/:/proc/:/tmp/ -- DirectoryIterator + Glob --. .. .autorelabel bin boot dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr vagrant var
包丁は basedir から出られない
fastcgi_param でのみ設定nginx
# set php open_basedir fastcgi_param PHP_ADMIN_VALUE "open_basedir=$document_root/:/tmp/:/proc/";
ここで、「$document_root」は nginx の変数であり、nginx の各サーバーのルート ディレクトリです
たとえば、サーバー www.iamle.com に設定されたルート ディレクトリは /home/wwwroot/www.iamle です。 com
PHP マニュアルをよく読んでください 次の段落があります
php.ini で定義された disable_functions または disable_classes の値は上書きされませんが、新しい設定が元の値に追加されることに注意してください。 php_admin_value または php_admin_flag を使用して定義された値は、PHP コードの ini_set() によってオーバーライドできません。 5.3.3 以降、PHP 設定は Web サーバー経由でも設定できるようになりました。つまり、php を設定するための niignx の fastcgi_param の設定は、on、off、1、0、true、false、yes、no などのブール値を具体的に設定するために使用され、php_value はすべてのタイプの値を設定するために使用されます。結果は上記と同じです open_basedir のディレクトリ 読み取りも書き込みもできませんが、DirectoryIterator + Glob ですべてのファイルを正常に一覧表示できます
包丁は basedir から抜け出すことができません
これは、HOST=www.iamle.com のときに open_basedir を設定し、PATH =/home/wwwroot/www.iamle.com/
に open_basedir を設定することを意味します。テストしたところ、2 つの設定のいずれも有効でした結果は同上
Open_basedirはディレクトリ外では読み書きできないが、DirectoryIterator + GlobでPHPサーバー上のすべてのファイルを一覧表示できる
basedirを包丁が横切ることはできない
個人的な結論
DirectoryIterator + Globですべてを一覧表示できるPHP サーバー上のファイルは無害に見えますが、実際には長期的な APT には間違いなく役立ちます
open_basedir は想像されているほど安全ではありません、おそらく他の誰かが open_basedir を読み書きできる 0day を持っているでしょう
個人的には。 nginx + php (fastcgi fpm-php) (lnmp) open_basedir の設定
3 つのアプローチを使用、母はもう私の php open_basedir について心配する必要はありません (そう願っています)
非常に冗長ですが、もっと安心ではないでしょうか
簡単に言うと、結果は以下の通りです、私は次のような面倒な設定です
[HOST=www.iamle.com]open_basedir=/home/wwwroot/www.iamle.com/:/proc/:/tmp/[PATH=/home/wwwroot/www.iamle.com/]open_basedir=/home/wwwroot/www.iamle.com/:/proc/:/tmp/
テスト中に、これら 3 つの場所の設定の優先順位は次のとおりであることも判明しました
"php.ini" > "nginx fastcgi fastcgi_param" > "php-fpm.conf"

TooptimizePHPcodeforreducedmemoryusageandexecutiontime,followthesesteps:1)Usereferencesinsteadofcopyinglargedatastructurestoreducememoryconsumption.2)LeveragePHP'sbuilt-infunctionslikearray_mapforfasterexecution.3)Implementcachingmechanisms,suchasAPC

PhpisusedForsedingEmailsDueToitsIttegration withServerMailServicesAndExternalSmtpproviders、自動化とMarketingCampaign.1)SetupYourphpenvironment withebeBironment witheBiserverandphp、保証

メールを送信する最良の方法は、PHPMailerライブラリを使用することです。 1)Mail()関数を使用することはシンプルですが信頼できないため、電子メールがスパムを入力するか、配信できない場合があります。 2)PHPMailerは、より良い制御と信頼性を提供し、HTMLメール、添付ファイル、SMTP認証をサポートします。 3)SMTP設定が正しく構成されていることを確認し、暗号化(StartTLSやSSL/TLSなど)を使用してセキュリティを強化します。 4)大量の電子メールについては、メールキューシステムを使用してパフォーマンスを最適化することを検討してください。

customedersandaddadvancedfeaturesinphpemailentalitylivainability.1)customederadddetadata fortrackingandcategorization.2)htmLemailsallowStingtintintintintintinteractivity.3)添付物質の添付物質の添付

PHPとSMTPを使用してメールを送信することは、PHPMailerライブラリを介して実現できます。 1)PHPMailerをインストールして構成する、2)SMTPサーバーの詳細を設定する、3)電子メールコンテンツを定義し、4)メールを送信してエラーを処理します。この方法を使用して、電子メールの信頼性とセキュリティを確保します。

BestappRoachforseminginphpisusingthephpmailerlibrarydueToitsReliability、featurrichness、andeaseofuse.phpmailerSupportssmtpは、detairederorhandlingを提供します

依存関係注射(DI)を使用する理由は、コードのゆるい結合、テスト可能性、および保守性を促進するためです。 1)コンストラクターを使用して依存関係を注入します。2)サービスロケーターの使用を避け、3)依存関係噴射コンテナを使用して依存関係を管理する、4)依存関係を注入することでテスト可能性を向上させる、5)注入依存性を回避、6)パフォーマンスに対するDIの影響を考慮します。

phpperformancetuningisucial cuseenhancess andandandadsand。


ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

SublimeText3 中国語版
中国語版、とても使いやすい

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

DVWA
Damn Vulnerable Web App (DVWA) は、非常に脆弱な PHP/MySQL Web アプリケーションです。その主な目的は、セキュリティ専門家が法的環境でスキルとツールをテストするのに役立ち、Web 開発者が Web アプリケーションを保護するプロセスをより深く理解できるようにし、教師/生徒が教室環境で Web アプリケーションを教え/学習できるようにすることです。安全。 DVWA の目標は、シンプルでわかりやすいインターフェイスを通じて、さまざまな難易度で最も一般的な Web 脆弱性のいくつかを実践することです。このソフトウェアは、

mPDF
mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。

MantisBT
Mantis は、製品の欠陥追跡を支援するために設計された、導入が簡単な Web ベースの欠陥追跡ツールです。 PHP、MySQL、Web サーバーが必要です。デモおよびホスティング サービスをチェックしてください。
