Jinsi ya kuficha Nambari ya Toleo la PHP kwenye Kichwa cha HTTP


Usanidi wa PHP, kwa chaguo-msingi huruhusu kichwa cha majibu cha HTTP cha seva 'X-Powered-By' kuonyesha toleo la PHP lililosakinishwa kwenye seva.

Kwa sababu za usalama za seva (ingawa si tishio kuu la kuwa na wasiwasi), inashauriwa kwamba uzime au ufiche maelezo haya kutoka kwa wavamizi ambao wanaweza kuwa wanalenga seva yako kwa kutaka kujua kama unaendesha PHP au la.

Ikizingatiwa kuwa toleo fulani la PHP lililosakinishwa kwenye seva yako lina mashimo ya usalama, na kwa upande mwingine, washambuliaji wakifahamu hili, itakuwa rahisi kwao kutumia udhaifu na kupata ufikiaji wa seva kupitia hati.

Katika makala yangu ya awali, nimeonyesha jinsi ya Ficha nambari ya toleo la apache, ambapo umeona jinsi ya kuzima toleo lililowekwa la apache. Lakini ikiwa unaendesha PHP kwenye seva yako ya wavuti ya apache unahitaji kuficha toleo lililosanikishwa la PHP pia, na hii ndio tutaonyesha katika nakala hii.

Kwa hivyo, katika chapisho hili, tutaelezea jinsi ya kuficha au kuzima kuonyesha nambari ya toleo la PHP kwenye kichwa cha majibu cha HTTP cha seva.

Mpangilio huu unaweza kusanidiwa katika faili iliyopakiwa ya usanidi wa PHP. Iwapo haujui eneo la faili hii ya usanidi kwenye seva yako, endesha amri hapa chini ili kuipata:

$ php -i | grep "Loaded Configuration File"
---------------- On CentOS/RHEL/Fedora ---------------- 
Loaded Configuration File => /etc/php.ini

---------------- On Debian/Ubuntu/Linux Mint ---------------- 
Loaded Configuration File => /etc/php/7.0/cli/php.ini

Kabla ya kufanya mabadiliko yoyote kwa faili ya usanidi wa PHP, ninapendekeza kwanza ufanye nakala rudufu ya faili yako ya usanidi wa PHP kama hivyo:

---------------- On CentOS/RHEL/Fedora ---------------- 
$ sudo cp /etc/php.ini /etc/php.ini.orig

---------------- On Debian/Ubuntu/Linux Mint ---------------- 
$ sudo cp /etc/php/7.0/cli/php.ini  /etc/php/7.0/cli/php.ini.orig  

Kisha fungua faili kwa kutumia hariri unayopenda na haki za mtumiaji bora kama hivyo:

---------------- On CentOS/RHEL/Fedora ---------------- 
$ sudo vi /etc/php.ini

---------------- On Debian/Ubuntu/Linux Mint ---------------- 
$ sudo vi /etc/php/7.0/cli/php.ini

Tafuta neno kuu expose_php na uweke thamani yake kuwa Zima:

expose_php = off

Hifadhi faili na uondoke. Baadaye, anzisha tena seva ya wavuti kama ifuatavyo:

---------------- On SystemD ---------------- 
$ sudo systemctl restart httpd
$ sudo systemctl restart apache2 

---------------- On SysVInit ---------------- 
$ sudo service httpd restart
$ sudo service apache2 restart

Mwisho kabisa, angalia ikiwa kichwa cha majibu cha HTTP cha seva bado kinaonyesha nambari yako ya toleo la PHP kwa kutumia amri iliyo hapa chini.

$ lynx -head -mime_header http://localhost 
OR
$ lynx -head -mime_header http://server-address

ambapo bendera:

  1. -kichwa - hutuma ombi la HEAD kwa vichwa vya maigizo.
  2. -mime_header - huchapisha kichwa cha MIME cha hati iliyoletwa pamoja na chanzo chake.

Kumbuka: Hakikisha umesakinisha kivinjari cha lynx - mstari wa amri kwenye mfumo wako.

Ni hayo tu! Katika nakala hii, tulielezea jinsi ya kuficha nambari ya toleo la PHP kwenye kichwa cha majibu ya HTTP ya seva ili kulinda seva ya wavuti kutokana na shambulio linalowezekana. Unaweza kuongeza maoni kwa chapisho hili au labda kuuliza swali lolote linalohusiana kupitia fomu ya maoni hapa chini.