Kraj Suhošina; što je sljedeće?

Dugi niz godina, Revno sam koristio Suhosin s bilo kakvim implementacijama PHP5 na Apache2 ili PHP-FPM Nginx webserverima za obranu od SQL injekcija i drugih uobičajenih web napada. Zapravo, PHP5 je bio tako katastrofalan., oba u smislu njegove temeljne sigurnosti, i njegove funkcije i module koje nikada ne bih mogao zamisliti koristeći ga bez značajnog stvrdnjavanja koje Pruža Suhosin.
Kako je PHP5 amortiziran, a moji naslijeđeni programi su nestali, Ostalo mi je nekoliko implementacija PHP7 i bez dostupnih Suhosin zakrpa.
Iako, još uvijek je tehnički moguće dodati Suhosin u PHP 7.0 i 7.1 (pre-alpha – nije za proizvodnju), može se reći da je projekt odavno nestao, a PHP7 je već dokazao da je to može biti problematično kao da je bio njegov prethodnik.. Dok razmišljam o novom dodatku WAF-u i osnovnoj sigurnosti PHP7, ovo su neka od rješenja s kojima sam došao:
Onemogućavanje loših ili nepotrebnih funkcija
Postoji mnogo rizičnih funkcija izgrađenih unutar PHP-a koje su potencijalno opasne i prema zadanim postavkama ih treba onemogućiti unutar 'php.ini'. Konfiguracijsku datoteku možete pronaći pomoću naredbe u nastavku i onemogućiti funkcije putem vi ili nano.
php -i | grep "php.ini"NAPOMENA: Ako istovremeno koristite različite verzije PHP-a ili je program instaliran kao dio druge aplikacije treće strane, tada su velike šanse da imate instalirano više 'php.ini' i nije jasno koji je učitan od strane webservera. Provjerite uređujete li ispravnu verziju (php -v).
Dodavanje donjeg retka na kraj datoteke "php.ini", provjerite jeste li spremili datoteku, i ponovno pokretanje web-poslužitelja. Možete saznati više o svakoj od ovih PHP funkcija na ovoj adresi. Kao izmjerena radnja, možda ćete ih htjeti dodati jednu po jednu kako biste bili sigurni da to ne utječe negativno na vaše aplikacije.
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_setuidOnemogućavanje globalnih i osnovnih baza registra64
Register Global je funkcija PHP-a koja omogućuje pretvaranje ulaznih polja u URL u varijablu unutar koda. Stoga, bilo koji potencijalno ranjivi kôd može iskoristiti napadač koji može proći zlonamjerne nizove pomoću HTTP GET ili POST zahtjeva.
Register Globals može se lako onemogućiti dodavanjem donjeg retka na kraju 'php.ini'. Ne zaboravite ponovno pokrenuti web-poslužitelj za izvršavanje promjena.
register_globals = OffBaš kao i Register Globals, Base64 je još jedna često nepotrebna značajka koja otvara vrata zlonamjernim stražnjim vratima. Base64 dekoder možete trajno onemogućiti dodavanjem donjeg retka na kraj 'php.ini'.
base64_decode = OffOgrada nakon objave
Mišljenja, informacije, ili su mišljenja izražena isključivo autorova i ne predstavljaju nužno stavove njegovog poslodavca ili organizacija s kojima je povezan.
Informacije sadržane u ovom postu služe samo u svrhu općih informacija. Informacije pruža Farhad Mofidi i iako se trudi održavati informacije ažurnima i točnima, ne daje nikakve izjave ili jamstva bilo koje vrste, izričita ili implicirana, u pogledu cjelovitosti, točnosti, pouzdanosti, prikladnosti ili dostupnosti web stranice. Farhad ne daje nikakve izjave niti jamstva. niti o bilo kojoj informaciji, proizvodi ili povezane grafike sadržane u bilo kojem objavi u bilo koju svrhu.
Također, AI se može koristiti kao alat za pružanje prijedloga i poboljšanje dijelova sadržaja ili rečenica. Ideje, misli, mišljenja, i konačni proizvodi su originalni i izrađeni od strane autora.