web-dev-qa-db-ja.com

XAMPPを自宅のコンピューターにインストールしてテストするのはどの程度安全ですかPHPコード?

PHP=コードをテストしたいのですが、XAMPPをインストールするのが最善の方法だと思いますが、自宅のコンピュータにサーバーソフトウェアをインストールすることに不安を感じています。

XAMPPをインストールすることは一般的に安全ですか?何に注意する必要がありますか?または、PHPコードをテストするより安全な方法はありますか?

18
Frost

ApacheとMySQLは、それらが自分のコンピューターからの要求のみをリッスンするとなるように構成できます。ほとんどのテストシステムではこれで問題ありません。インターネットからサービスにアクセスできないため、リスクが大幅に軽減されます。

XAMPPを初めて起動する前に、これらのファイルを見つけて編集します。

Apacheの場合、ファイルxampp\Apache\conf\httpd.confおよびxampp\Apache\conf\extra\httpd-ssl.confを編集します。次のような「Listen」で始まる行を探します

Listen 80

そしてそれらを

Listen 127.0.0.1:80

MySQLの場合、ファイルxampp\mysql\bin\my.cnfを開き、セクション「[mysqld]」を見つけて、この行を追加します

bind-address=localhost

サービスを開始した後、コマンドウィンドウに移動して結果を確認を開始し、実行します。

netstat -a -n

最後の列でLISTENとマークされているエントリについては、Listen列を見てください。常に127.0.0.1または:: 1で始まる必要がありますが、0.0.0.0で始まる必要はありません。

22

XAMPPのセキュリティの実績は非常に貧弱です。既知でパッチされていないCSRFを介して悪用可能なリモートコード実行の脆弱性があります。 (実際には、バンドルされているPHP/MySQLアプリケーションのひどい例にあります。)localhostにのみバインドされている場合でも、これはリモートで悪用される可能性があります。反論は、攻撃者がXAMPPを実行していることを知らなければならないということです。 PHPMyAdminのインストールは常に時代遅れであり、このプロジェクトに影響を与える厄介なエクスプロイトがあります。

私の提案は、VMでUbuntuを使用することです。 UbuntuのLAMPインストールは、XAMPPよりも簡単で、安全です。ただ走れ Sudo taskselまたは、インストール時にLAMPパッケージを選択します。

5
rook

免責事項:私はXAMPP開発者です。

ローカルマシンにXAMPPをインストールしても安全です。通常、ルーターを介してインターネットに接続しているため、現在のインストールにアクセスすることはできません。

また、XAMPPは 「XAMPPインストールをより安全にする方法を教えてください。」セクション では、そのガイドに従ってMySQLルートパスワードを変更したり、使用しないサービスを無効にしたりできます。

最近、XAMPPはPHPベースのXAMPPダッシュボードを無効にし、静的なHTMLガイドを含めました。 CSFRまたはこのパネルに関連する問題は存在しなくなりました。

XAMPPでは、最新のセキュリティ問題も考慮されます。ブログをチェックして、できるだけ早く新しいバージョンがリリースされたことを確認してください。

5
user93088

XAMPPを本番環境で使用しないでください。また、元のソフトウェアベンダー(PHP、Apache、MySQLなど)からのアップグレードやセキュリティパッチを含め、開発マシンで厳重にロックしてセキュリティを確保するための手順を実行する必要があります。

XAMPPのインストールを選択する場合は、ループバックアドレスからの接続のみを許可するようにしてください。これは、Apache、MySQL、およびXAMPP用にセットアップしたその他のサービスについて確認する必要があります。 LANから内部的にアクセスできるものがあり、ネットワーク上の誰かが故意または無意識のうちに誰かがエクスプロイトを使用してマシンにアクセスし、損傷を与える可能性があります。

1
ITOps

では、"safe"とはどういう意味ですか?

  1. データのセキュリティやプライバシーについて心配ですか? (つまり、他の人がサーバーアプリケーションを介してPCに侵入し、ローカルデータを表示/制御することができます)?
  2. または、あなたのphpコードやあなたのコンピュータにダメージを与えるソフトウェアについて心配していますか?

1)については、OSが適切に構成されている場合、リモートでコンピューターにアクセスすることは通常不可能です。ほとんどの場合、ローカルネットワーク環境は、NAT、ファイアウォール、および動的IPポリシーなどの他の技術によって保護されています。 Apacheは、@ HendrikBrummermannが指摘するように、ローカルアクセスのみを受け入れるように構成することもできます。

2)については、堅牢なコードを記述してみてください。 ApacheとMySQLは非常に軽量なサーバーアプリケーションです。ローカルテストを実行しているだけなので、システムをダウンさせる可能性のある大量のデータトラフィックや高いコンピューティングオーバーヘッドは通常ありません。

0
shuangwhywhy

コードをテストするより安全な方法があります。サーバーソフトウェアを(WindowsのXAMPP/WAMPからUbuntu Serverに)何でも 仮想マシン にインストールできます。自分のコードを開発しているだけの場合はやりすぎかもしれませんが、最初に聞こえるほど難しくはありません。

A VMは、仮想マシンを実行しているホームコンピューターへの伝播から、サーバー(guest)への影響を効果的に隔離します((Host)。許可が不適切に構成されており、テストしているスクリプトが非表示のsystem('rm -Rf some_dir')を実行するとします。問題ありません。 VM=を最新のスナップショットに戻して、そのままにします。スナップショットを比較して、何が変更されたかを確認することもできます。

さらに、私のVM選択のVMのネットワークアダプターは、VMにNATを適用し、VMにアクセスするためにポート転送を手動で構成することを強制します。それが存在します。

VMでテストすることで、マルウェアによるデータ漏洩のリスクも軽減されます。個人的には、テストしているアプリが意図的に何かを悪意を持って削除するのではないかと心配していますサイレントにそれを盗み、どこかにアップロードします。ホストマシンは、VM内で実行されているアプリから見えなくなります。

私は個人的に OracleのVirtualBox ;に不満です。それは完全に無料で、私を興味深く保つのに十分な機能があり、使い方は非常に簡単です。 VMも移植可能です。仮想マシンファイルをUSBドライブにコピーして、動作させることができます。

あらゆる種類のriskyソフトウェアテストを実行する場合は、VMの使用方法を学び、そこでテストすることをお勧めします。これは非常に便利なスキルです。ツールベルトに入れます。

0
msanford