frame

Sveiki apsilankę!

Jei forume lankaisi pirmą kartą, kviečiame registruotis ir prisijungti prie diskusijų.

Prisijungti Registruotis

PHP konfigūravimas - stipriname saugumą

IV_RomanLIV_RomanL Interneto vizija
edited rugsėjo 25 Į Serverių saugumas
Siekiant išvengti virtualiai dedikuoto 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 arba PHP 5.4.X versijas. PHP 5.2.X palaikymas iš PHP kūrėjų yra nutrauktas.

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 = curl_exec,curl_multi_exec,dl,exec,fsockopen,parse_ini_file,passthru,popen,proc_open,proc_close,shell_exec,
show_source,symlink,system


Š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 =

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

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
Pažymėtos temos:

Komentarai

  • libercurlibercur Naujokas (-ė)
    edited 2017 rugpjūčio 13
    Pataisykit:
    shell _exec > shell_exec
    parse_ ini_file > parse_ini_file

    Tarpai nereikalingi.
Norėdami palikti komentarą, turite prisijungti arba registruokis.