Zakaj PHPSuExec in varnostna luknja v PHP
Na večini strežnikov Apache, PHP teče kot Apache modul. Kot taka, da poteka neposredno v uporabniški Nihče, ampak doesnt zahtevajo izvedbo zastavo. To pomeni, da je za izvedbo datoteko PHP, preprosto mora biti čitljiv svetu. Problem je, da to omogoča obstoj vseh drugih uporabnikov na strežniku, da berejo vaš PHP files!

Omogočanje drugim uporabnikom, da berejo vaš HTML datoteke ni problem, saj se lahko prikaže v Internet Explorerju. Vendar pa se PHP datoteke ne more prebrati, jih razčleniti. Veliko skripte uporabite datoteko PHP za shranjevanje podatkovne baze uporabniško ime in geslo. To pomeni, da je na drugem strežniku vsaka stranka lahko berejo vaš PHP datoteke, naložite svoje geslo in dostop do podatkovnih baz.

ISPs blizu te luknje, ki jih namestite Apache modul imenovan PHPSuExec, ki izvaja PHP skripte pod vašim uporabniškim imenom. Namesto vsakdo dovoljenj, ki jih uporablja lastniki dovoljenj. Tako lahko spremenite dovoljenja vaše skripte PHP v 0700 ali 0400 in še vedno berejo in izvršbo. Vendar pa ti scenariji ne bo več dostopna vsem drugim uporabnikom. PHPSuExec bo zavrnil izvršitev skript, če je svetovni writable vas zavarovati pred zlorabo nekdo od vaših skripte.

Lahko preprosto povedati, če vaš strežnik je PHPSuExec omogočeno z obiskom strežnikov phpinfo stran. Preprosto si za naslednje na vrhu te strani. (4. Box Down Server API): - Server Apache API To pomeni, da je strežnik trenutno teče php kot apache modul. Če v phpinfo strani boste videli naslednje: - Server API CGI Potem strežnik je namestitev CGI PHP s suexec omogočeno.

Kakšna je razlika?
Večina strani, ne bodo prizadeti s spremembo, ki teče php kot cgi z suexec. PHPSuExec deluje na skoraj enak način, CGI (Perl scripts etc) z suexec ne, če je vse aplikacije tečejo na podlagi računa uporabniško ime UID / GID namesto v PHPs primeru, kot apache modul, uporabniški nihče.

To preprosto pomeni, da pravila, ki veljajo za. CGI +. Pl datotek na vašem current server, veljajo tudi za php datoteke. Največja dovoljena dovoljenj za imenike in datoteke je 755 PHP. Če ne, da so dovoljenja nastavljena na največ 755 datotek v PHP in njihove vgradnje poti, bo imelo za posledico 500 notranji pomočnik zmota, ko se je poskušalo izvršbo.

File & Folder Permissions
Kot lahko vidite iz tabele, zahteva le dovoljenje, je lastnik 0400-brati, če pa morate pisati v datoteko, morate tudi, da lastniki in pisanje permission 0600. Priporočljivo je, da vse vaše PHP datoteke imajo dovoljenje chmod 0400 ali 0600. Izvajanje dovoljenja ni nikoli potrebno, in skupino, in vsi dovoljenja more biti prepuščeno 0.

PHPSuExec tudi potrjuje imenikov, v katerih se nahajajo PHP files. PHP datotek ni mogoče izvesti v imeniku, da je skupina-writable ali svetovno-writable. Kljub temu, da bi se dostop do imenika, je treba na svetovni izvršljiv, ki je varen. Zato je treba mape, ki vsebujejo PHP datoteke imajo dovoljenja 0755 ali 0555. Read Write Execute lastnik Pišite Group vsakdo.

777 Ali moram imenikov nastavljena na to? Moj namestite skript pravi, da delam.
No, vam ni treba imeti imenike ali datoteke, nastavljen na 777, tudi če je vaša namestitev dokumentov, povem vam, da vam. Dovoljenja za 755 bo deloval na enak način Scripts v lasti vaš uporabniški račun UID / GID bodo lahko pišejo datotek, na enak način, da se jih izvaja v skladu z apache 777 dovoljenj.

Če imate php aplikacije / skripte, ki so imenikov nastavljena na 777, (potrebna za pisanje, ki jim jih php / apache modul), bi bilo jih je treba spremeniti. Tudi mi bi morali spremeniti lastništva vseh datotek v lasti uporabnika, da nihče uporabniško ime UID / GID za vaš račun.

. htaccess
Ne morete manipulira php.ini nastavitve. Htaccess pri zagonu PHP kot cgi / phpsuexec. Če uporabljate. Htaccess php_value z vpisi v njem, bi prejeli 500 notranji pomočnik zmota Pri poskusu dostopa do skripte. To je zato, ker PHP se ne izvaja več kot modul Apache in Apache ne bo izvajala teh direktiv več. Vsi PHP vrednosti je treba odstraniti iz vašega. Htaccess datoteke, da bi se izognili temu vprašanju. Dajanje php.ini datoteko v svojem kraju, se bo rešitev tega vprašanja. (Glej spodaj.)

Privzete nastavitve, rabim php teči z različnimi možnostmi, kot pomočnik privzete nastavitve, lahko to storim?
Privzete nastavitve strežnika s php.ini lahko omeji nekatere aplikacije, je mogoče spremeniti nastavitve in kako bo php prost dostop na svoj račun, v imenik na podlagi. Če ste aplikacijo, ki zahteva, na primer: --

register_globals mora biti vklopljen

Nato z ustvarjanjem datoteko z imenom php.ini v imeniku, da je scenarij, ki se nahajajo znotraj, z začetkom register_globals = On bi vam omogočajo, da zaženete skript, ki s svoje nastavitve.

  1
   On register_globals = On 

Lahko kopirate spremenljivk iz phpinfo strani, kot si sledijo v njem in spremenite nastavitve, kot se zahteva za vaše skripte.

Quick težave strelec. . . . . HELP moj php skripta ne deluje, ali imam napaki

  1. Preverite, da PHP skript, ki ga poskušajo izvršitev ni dovoljenja več kot 755 644 bo čisto v redu dela normalno, to ni nekaj, kar bo treba spremeniti v večini primerov.
  2. Preverite, ali so chmod dovoljenja za mapo, ki prebiva v scenarij nastavljena na največ 755. To vključuje tudi mape, da bi scenarij morajo imeti dostop do prav tako.
  3. Preverite, ali so datoteke, ki pripada vam to ni v lasti uporabnika nikogar. Nekatere aplikacije, ki je potekal v okviru PHP kot modul Apache, lahko datoteke, ki so v lasti uporabnika Apache V tem primeru predloži helpdesk vstopnico za datoteko lastništva treba spremeniti.
  4. Preverite, da nimate. Htaccess datoteko z php_values v njem. To bo povzročilo 500 Notranja napaka strežnika, ko so poskušale izvesti skript. Php_values bo treba odstraniti iz vašega. Htaccess datoteko in namesto, da je treba dati php.ini datoteko, ki vsebuje PHP direktiv, kot je pojasnjeno zgoraj.

Podobne objave: