| | |

PHP konfigūravimas stipriname serverio saugumą

Siekiant išvengti serverio darbo sutrikimo dėl trečiųjų šalių kaltės privalu nuolat stiprinti serverio saugumo lygius. Šiame straipsnyje pateikiame 15 patarimų kurie pagelbės stiprinant PHP saugumą.

PHP konfigūracinis failas randamas aplanke /etc/ .

0. Rekomenduojame naudoti PHP > 5.3.X versijas, nes PHP 5.2.X palaikymas iš PHP kūrėjų yra nutrauktas (2011 Sausio 6) .

1. allow_url_fopen (funkcija įjungta pagal nutylėjimą)

Ši funkcija PHP aplikacijose leidžia išgauti duomenis iš nutolusių šaltinių (FTP, HTTP). Jei trečiosios šalys gali manipuliuoti šia PHP direktyva, tuomet labai lengva įkrauti informaciją ar jos dalį iš nutolusio serverio netalpinant kenkėjiškų failų tiesiogiai jūsų serveryje.

Rekomenduojama šios direktyvos nuostata: allow_url_fopen Off

2. allow_url_include (funkcija išjungta pagal nutylėjimą)

Išjungus šią funkcija blokuojami failai kurie gali būti įkraunami iš išorinių nuorodų. Jei ši funkcija išjungta, tačiau palikta allow_url_fopen direktyvą įjungta, tuomet trečiosios šalys vis tiek gali įkrauti informaciją iš nutolusių serverių.

Rekomenduojama šios direktyvos nuostata: allow_url_include Off

3. disable_functions

Ši direktyva leidžia išjungti specifines PHP funkcijas, taip sumažinant riziką jog bus pasinaudojama PHP aplikacijos spragomis.

Prieš išjungdami PHP funkcijas atydžiai patikrinkite ar jos nėra naudojamos jūsų tinklalapyje.

Rekomenduojama šios direktyvos nuostata: disable_functions = curl_exec,curl_multi_exec,dl,exec,fsockopen,parse_ ini_file,passthru,popen,proc_open,proc_close,shell _exec,
show_source,symlink,system,escapeshellarg,escapeshellcmd

Išjungiamų funkcijų paaiškinimas:

  • curl_exec – inicijuojama cURL sesija
  • curl_multi_exec – inicijuojami papildomi susijungimai cURL sesijos metu
  • dl – įkraunamas PHP plėtinys PHP vykdymo metu
  • exec – išorinės komandos vykdymas
  • fsockopen – atidaromas unix arba www prievadas (port)
  • parse_ini_file – įkraunamas konfigūracinis .ini failas
  • passthru – vykdoma išorinė programa ir pateikiami neformatuoti rezultatai
  • popen – atidaroma vykdomo failo rodyklė
  • proc_open – įvykdoma komanda ir atidaromas failas informacijos įvedimui / išvedimui
  • proc_close – uždaromas failas iššauktas proc_open komandos, pateikiamas uždarymo PID
  • shell_exec – vykdoma shell komanda
  • show_source – rodomas failo šaltinis
  • symlink – sukuriama nuoroda į failą
  • system – įvykdoma išorinė programa ir pavaizduojamas rezultatas

4. display_errors

Ši PHP direktyva pateikia PHP klaidas esant PHP aplikacijos kodo klaidoms. PHP aplikacijos klaidose gali būti pateikiama informacija aktuali trečiosioms šalims siekiančioms sukompromituoti jūsų tinklalapį ir/ar serverį.

Rekomenduojama šios direktyvos nuostata: display_errors = Off ir log_errors = On

5. expose_php

Ši direktyva nustato ar PHP versija yra rodoma trečiosioms šalims. Žinant PHP versiją galima išnaudoti žinomus pažeidžiamumus (ypač jei PHP versija nėra naujausia).

Rekomenduojama šios direktyvos nuostata: expose_php = Off

6. magic_quotes_gpc (kai kuriose Linux distribucijose ši nuostata yra įjungta)

Ši nuostata suteikia bazinę apsaugą nuo galimų SQL injekcijų. Nepaisant to, ji nėra efektyvi ir jos naudojimas taipogi nėra skaitomas racionaliu. Apsaugą nuo SQL injekcijų rekomenduotina diegti PHP aplikacijų lygyje,

Rekomenduojama šios direktyvos nuostata: magic_quotes_gpc = Off

7. memory_limit

Ši direktyva aprašo virtualios atminties kiekį skiriamą 1 PHP procesui. Pasirinkus neracionalų memory_limit dydį atveriamas kelias DoS tipo atakai. Ši direktyva konfigūruojama pagal specifinį poreikį. Didinkite ją virš rekomenduotinos reikšmės tik tada jei iš tiesų nėra kito pasirinkimo.

Rekomenduojama šios direktyvos nuostata: memory_limit = 8M

8. open_basedir

open_basedir direktyva apriboja PHP failų naudojimą už vartotojo nustatyto aplanko ribų. Nustatykite open_basedir (jei naudojama) tik ties tuo aplanku kurį norite jog lankytojai matytų.

Pavyzdinė rekomenduojama šios direktyvos nuostata: open_basedir = „/var/www/html/:/usr/local/php/“

9. post_max_size

Ši direktyva riboja duomenų kiekį perduodama POST metodu. Trečiosios šalys gali sukompromituoti serverio resursus siųsdami daugybę POST tipo užklausų ir taip išnaudodami serverio atmintį.

Rekomenduojama šios direktyvos nuostata: post_max_size = 256K

P.S. šis nustatymas įtakos įkelti failus šį serverį (apribos įkeliamų failų dydį). Todėl koreguokite ši nustatymą pagal savo poreikius. Pvz. post_max_size = 8M  , upload_max_filesize = 8M  ir memory_limit  = 8M

10. register_globals

Šią direktyvą naudoja senesnės PHP aplikacijos. Ji leidžia automatiškai kurti kintamuosius. Ši direktyva turėtų būti visuomet išjungta.

Rekomenduojama šios direktyvos nuostata: register_globals = Off

11. save_path

Ši direktyva aprašo aplanką kuriame kuriamos sesijos. Sesijų saugojimo aplankas turėtų būti virš vartotojams prieinamo aplanko.

Pavyzdinė rekomenduojama šios direktyvos nuostata: session.save_path = „/var/lib/php/session“

12. upload_max_filesize

Ši direktyva nustato maksimalų 1 failo dydį kurį galima įkelti naudojant PHP aplikaciją. Trečiosios šalys mėgindamos sukompromituoti jūsų serverio sklandų darbą gali mėginti įkelti itin didelius failus taip visiškai išnaudodami jūsų serveryje esančius resursus.

Pavyzdinė rekomenduojama šios direktyvos nuostata: upload_max_filesize = 8M

13. upload_tmp_dir

Ši direktyva aprašo aplanko kelią, kuriame saugojami laikini failai su kuriais dirba PHP aplikacija. Aplankas Negali būti pasiekiamas įprastiems vartotojams.

Pavyzdinė rekomenduojama šios direktyvos nuostata: upload_tmp_dir = „/tmp“

14. use_trans_sid

Ši direktyva nusako ar sausainėliuose (Cookies) yra matomas sesijos numeris (PHPSESSID). Jei ši informacija yra matoma, tuomet trečiosioms šalims perėmus aktyvią sesiją įmanoma perimti slaptą informaciją.

Rekomenduojama šios direktyvos nuostata: session.use_trans_sid = 0

Kviečiu įvertinti įrašą!
[Viso: 0 Vidurkis: 0]

Similar Posts

Parašykite komentarą

El. pašto adresas nebus skelbiamas.

7 + 3 =