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_setuid
Onemoguć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 = Off
Baš 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 = Off
Post Disclaimer
The views, information, or opinions expressed are solely those of the author and do not necessarily represent those of his employer or the organizations with which he is affiliated.
The information contained in this post is for general information purposes only. The information is provided by Farhad Mofidi and while he strives to keep the information current and accurate, he does not make any representations or warranties of any kind, express or implied, regarding the completeness, accuracy, reliability, suitability or availability of the website. Farhad makes no representations or warranties. or any information, products or related graphics contained in any Post for any purpose.
Also, AI may be employed as a tool to provide suggestions and improve some of the contents or sentences. The ideas, thoughts, opinions, and final products are original and human-made by the author.