it-swarm-eu.dev

Jak bezpečné je nainstalovat XAMPP na můj domácí počítač a testovat PHP kód?

Chci vyzkoušet nějaký PHP kód a myslím, že nejlepším způsobem je nainstalovat XAMPP - ale jsem nervózní z instalace serverového softwaru na můj domácí počítač.

Je obecně bezpečné nainstalovat XAMPP (vzhledem k tomu, že jsem to ještě neudělal a nemám spoustu zkušeností se zabezpečením serveru)? Co musím vědět? Existuje alternativně bezpečnější způsob testování PHP kód?

18
Frost

Apache a MySQL lze nakonfigurovat tak, aby poslouchali pouze požadavky z vašeho vlastního počítače. Pro většinu testovacích systémů je to v pořádku a značně to snižuje riziko, protože služby nejsou dostupné z internetu.

Než spustíte XAMPP poprvé, vyhledejte a upravte tyto soubory:

Pro Apache upravte soubory xampp\Apache\conf\httpd.conf a xampp\Apache\conf\extra\httpd-ssl.conf. Vyhledejte řádky začínající slovy „Poslouchejte“, například

Listen 80

a nahradit je

Listen 127.0.0.1:80

Pro MySQL otevřete soubor xampp\mysql\bin\my.cnf najděte sekci "[mysqld]" a přidejte tento řádek

bind-address=localhost

Po spuštění služeb ověřte výsledek přejděte do příkazového okna a spusťte a spusťte:

netstat -a -n

U položek označených jako LISTEN v posledním sloupci se podívejte na sloupec Poslech. Mělo by to vždy začínat 127.0.0.1 nebo :: 1, ale ne 0.0.0.0.

22

XAMPP má velmi špatné bezpečnostní výsledky. Prostřednictvím CSRF jsou známé chyby zabezpečení vzdálené spuštění kódu, které jsou známé a neodeslané. (Je to akutně v jejich shitty příkladech PHP/MySQL aplikací, které jsou dodávány v balíčku.) I když jste vázáni pouze na localhost, lze to vzdáleně využít. Protiargument je, že útočník by musel vědět, že používáte XAMPP. Jejich instalace PHPMyAdmin je vždy zastaralá a existují i ​​nepříjemné exploity, které také ovlivňují tento projekt.

Mým návrhem je použití Ubuntu na VM. Instalace Ubuntu LAMP je akutně jednodušší než XAMPP a je akutně bezpečná. Prostě běž Sudo tasksel nebo vyberte balíček LAMP, když jej instalujete.

5
rook

Zřeknutí se odpovědnosti: Jsem vývojář XAMPP.

Je bezpečné nainstalovat XAMPP do místního počítače. Jste obvykle připojeni k internetu přes router, takže není možné přistupovat k vaší aktuální instalaci.

Také XAMPP dodává část „Jak mohu zabezpečit bezpečnější instalaci XAMPP?“ , kde můžete následovat tohoto průvodce, abyste mohli změnit root heslo MySQL, zakázat služby, které nepoužíváte atd.

Nedávno XAMPP deaktivoval XAMPP Dashboard založený na PHP a zahrnuli jsme statické html průvodce. Žádný problém související s CSFR nebo související s tímto panelem nyní neexistuje.

XAMPP také bere v úvahu nejnovější bezpečnostní problémy. V blogu si můžete prohlédnout, že jsme vydali nové verze co nejdříve.

5
user93088

XAMPP by nikdy neměl být používán v produkčním prostředí a pevně uzamčen a podniknuty kroky k jeho zabezpečení na vývojovém stroji, včetně jakýchkoli upgradů nebo bezpečnostních záplat od původních dodavatelů softwaru (PHP, Apache, MySQL atd.).

Pokud se rozhodnete nainstalovat XAMPP, ujistěte se, že umožňuje pouze připojení z adresy zpětné smyčky. Měli byste to ověřit pro Apache, MySQL a všechny další služby, které nastavíte pro XAMPP. Jako kdybyste měli něco, k čemu je možné interně přistupovat z LAN, a mít někoho jiného ve vaší síti vědomě nebo nevědomě, mohou využít exploity k získání přístupu k vašemu počítači a způsobit poškození.

1
ITOps

Co tedy přesně myslíš „bezpečné“?

  1. Zajímáte se o zabezpečení dat nebo soukromí? (tj. jiní mohou proniknout do počítače prostřednictvím serverových aplikací a prohlížet/ovládat místní data)?
  2. Nebo se obáváte php kódu nebo softwaru, který poškodí váš počítač?

Pro 1) není obecně možné mít vzdálený přístup k vašemu počítači, pokud máte dobře nakonfigurovaný operační systém. Ve většině případů je vaše místní síťové prostředí chráněno pomocí NAT, firewallů a dalších technik, například dynamických zásad IP. Apache lze také nakonfigurovat tak, aby přijímal pouze místní návštěvy, jak upozorňuje @HendrikBrummermann.

Pro 2), zkuste napsat robustní kód a to je vše, co mohu navrhnout. Apache a MySQL jsou velmi lehké serverové aplikace. Právě provádíte místní test, takže by obecně neměly existovat těžké datové přenosy nebo vysoké režijní náklady, které by váš systém mohly snížit.

0
shuangwhywhy

Existuje je bezpečnější způsob testování vašeho kódu. Můžete - a pravděpodobně byste měli - nainstalovat svůj serverový software, ať už je to cokoli (od XAMPP/WAMP ve Windows k Ubuntu Serveru), do virtuálního počítače . Není to tak skličující, jak by to mohlo zpočátku znít, i když to vše, co děláte, je vyvíjení vlastního kódu.

A VM efektivně maskuje cokoli se stane s vaším serverem (host) od šíření do domácího počítače se spuštěním virtuálního počítače (Host) Představte si, že máte nesprávně nakonfigurovaná oprávnění a skript, který testujete, spustí skrytou system('rm -Rf some_dir'). Žádný problém! Vraťte svůj VM k poslednímu snímku a pryč). mohl dokonce snímky porovnat, aby viděl, co se změnilo.

Kromě toho síťový adaptér v mém VM výběru NATs VM, nutí vás ručně nakonfigurovat předávání portů pro VM pro přístup k němu), natož zjišťovat, že to existuje.

Testování v VM také snižuje riziko úniku dat prostřednictvím malwaru. Osobně se mnohem méně obávám, že aplikace, kterou testuji, škodlivě smaže něco než já, že to bude - tiše to ukrást ​​a někde nahrajte. Váš hostitelský počítač bude neviditelný pro aplikace běžící ve vašem VM.

Osobně jsem součástí Oracle VirtualBox ; je to zcela zdarma, má dostatek funkcí, aby mě zaujal a je velmi jednoduchý na používání. Virtuální počítače jsou také přenosné: můžete zkopírovat soubor virtuálního počítače na jednotku USB a nechat jej fungovat.

Pokud budete někdy dělat riskantní testování softwaru jakéhokoli druhu, navrhuji, abyste se naučili používat VM a testovali tam: je to velmi užitečná dovednost mít ve svém pásu nástrojů.

0
msanford