Konec Suhosin; co bude dál?

Po mnoho let, Horlivě jsem použil Suhosin s jakoukoli implementací PHP5 na webových serverech Apache2 nebo PHP-FPM Nginx k obraně proti SQL injection a dalším běžným webovým útokům. Vlastně, PHP5 byl tak katastrofální, a to jak z hlediska jeho základního zabezpečení, tak z hlediska jeho základního zabezpečení, a jeho funkce a moduly, které bych si nikdy nedokázal představit, kdybych jeho používání neobešel bez výrazného zpevnění, které Suhosin poskytuje.
Protože PHP5 je odepisován a všechny mé starší programy jsou pryč, Zůstalo mi několik implementací PHP7 a žádné dostupné záplaty Suhosin.
Přestože, stále je technicky možné přidat Suhosin do PHP 7.0 a 7.1 (Pre-Alpha – není určeno pro produkci), je fér říci, že projekt je dávno pryč a PHP7 již dokázal, že může být problematické Stejně jako tomu bylo u jeho předchůdce. Když přemýšlím o novém přírůstku do WAF a základním zabezpečení PHP7, toto jsou některá z řešení, se kterými jsem přišel:
Zakázání špatných nebo nepotřebných funkcí
V PHP je zabudováno mnoho rizikových funkcí, které jsou potenciálně nebezpečné a měly by být ve výchozím nastavení zakázány v 'php.ini'. Konfigurační soubor můžete najít pomocí níže uvedeného příkazu a deaktivovat funkce pomocí vi nebo nano.
php -i | grep "php.ini"
UPOZORŇUJEME: Pokud používáte různé verze PHP současně nebo je program nainstalován jako součást jiné aplikace třetí strany, Pak je vysoká šance, že máte nainstalováno více 'php.ini' a není jasné, který z nich je načten webovým serverem. Ujistěte se, že upravujete správnou verzi (php -v).
Přidejte následující řádek na konec souboru 'php.ini', Ujistěte se, že jste soubor uložili, a restartujte webový server. Můžete se dozvědět o každé z těchto funkcí PHP na této adrese. Jako uměřená akce, Možná je budete chtít přidat jeden po druhém, abyste se ujistili, že to negativně neovlivní vaše aplikace.
disable_functions = popen, eval, leak, exec, shell_exec, curl_exec, curl_multi_exec, parse_ini_file, mysql_connect, system, phpinfo, escapeshellarg, escapeshellcmd, passthru, symlink, show_source, mail, sendmail, proc_open, proc_nice, proc_terminate, proc_get_status, proc_close, pfsockopen, posix_kill, posix_mkfifo, posix_setpgid, posix_setsid, posix_setuid
Zakázání registru Globals a Base64
Register Global je funkce PHP, která umožňuje převod vstupních polí na URL na proměnnou uvnitř vašeho kódu. Proto, jakýkoli potenciálně zranitelný kód může být zneužit útočníkem, který může předávat škodlivá pole pomocí požadavků HTTP GET nebo POST.
Registrovat Globals lze snadno zakázat přidáním níže uvedeného řádku na konec 'php.ini'. Nezapomeňte restartovat webový server, abyste provedli změny.
register_globals = Off
Stejně jako Register Globals, Base64 je další často zbytečná funkce, která otevírá dveře do škodlivých zadních vrátek. Dekodér Base64 můžete trvale zakázat přidáním níže uvedeného řádku na konec 'php.ini'.
base64_decode = Off
Zřeknutí se odpovědnosti za příspěvek
Výhledy, Informace, nebo vyjádřené názory jsou výhradně názory autora a nemusí nutně představovat názory jeho zaměstnavatele nebo organizací, se kterými je spojen.
Informace obsažené v tomto příspěvku slouží pouze pro obecné informační účely. Informace poskytuje Farhad Mofidi a zároveň se snaží, aby informace byly aktuální a přesné, Nečiní žádná prohlášení ani záruky jakéhokoli druhu, výslovné nebo předpokládané, Pokud jde o úplnost, Přesnost, spolehlivost, vhodnost nebo dostupnost webových stránek. Farhad neposkytuje žádná prohlášení ani záruky. nebo jakékoli informace, produkty nebo související grafiky obsažené v jakémkoli příspěvku pro jakýkoli účel.
Také, Umělá inteligence může být použita jako nástroj k poskytování návrhů a vylepšování některých obsahů nebo vět. Nápady, myšlenky, názory, a finální produkty jsou originální a vyrobené člověkem autorem.