Crimson lähettäminen php-tilassa. Kuinka suojata foorumi phpBB-moottorilla automaattisilta rekisteröinneiltä

Määrittää, onko lyhyt merkintä sallittu ( ) PHP-tunnisteet. Jos haluat käyttää PHP:tä yhdessä XML:n kanssa, voit poistaa tämän vaihtoehdon käytöstä saumattomasti . Muussa tapauksessa voit näyttää sen PHP:llä seuraavasti: "; ?> . Jos tämä vaihtoehto on poistettu käytöstä, sinun on käytettävä PHP-alkutunnisteen pitkää muotoa ( ).

Kommentti:

Tämä direktiivi vaikutti myös vähentämiseen PHP 5.4.0 asti, joka on identtinen merkinnän kanssa . Tämän pikakuvakkeen käyttämiseksi short_open_tag-komento oli otettava käyttöön. PHP-versiosta 5.4.0 lähtien tuli aina saatavilla.

asp_tags boolean Mahdollistaa ASP-tyylitunnisteiden käytön tavallisten tunnisteiden lisäksi. Tämä koskee myös muuttujien arvojen näyttämiseen tarkoitettuja lyhenteitä<%= $value %>. Lisätietoja on HTML Escaping -osiossa. tarkkuutta kokonaisluku Liukulukujen merkitsevien numeroiden määrä. -1 serialize_precision kokonaisluku Merkitsevien numeroiden määrä, joka säilytetään liukulukuja sarjoitettaessa. -1 tarkoittaa, että tällaisten lukujen pyöristämiseen käytetään kehittynyttä algoritmia. y2k_compliance boolean Vuoden 2000 yhteensopivuuden ottaminen käyttöön (aiheuttaa ongelmia yhteensopimattomien selaimien kanssa) allow_call_time_pass_reference boolean

Näytetäänkö varoitus, jos argumentit välitetään viittauksella funktiota kutsuttaessa. On suositeltavaa määrittää funktion määrittelyssä viittauksella välitetyt argumentit. Kokeile poistaa tämä asetus käytöstä ja varmista, että skriptisi toimivat oikein ilman sitä ja että ne toimivat tulevien kielen versioiden kanssa (saat varoituksen joka kerta, kun käytät tätä vaihtoehtoa).

Argumenttien välittäminen viitteellä funktiokutsujen aikana on poistettu käytöstä koodin puhtauden vuoksi. Funktio voi muuttaa argumenttejaan dokumentoimattomalla tavalla, ellei argumenttia ole ilmoitettu läpäistyksi viittauksella. Sivuvaikutusten välttämiseksi on parempi määrittää tarkasti, mitkä argumentit välitetään viitteellä vain funktiota määritettäessä.

expose_php boolean

Näyttää PHP:n olemassaolon palvelimella, mukaan lukien PHP-version välittämisen HTTP-otsikossa (esimerkiksi X-Powered-By: PHP/5.3.7). Ennen PHP 5.5.0:aa esitettiin myös logotunnukset, jotta kun ne lisättiin PHP-sivuston linkkiin, vastaava logo näkyisi (esimerkiksi ). Tämän vaihtoehdon poistaminen käytöstä vaikutti myös toiminnon ulostuloon phpinfo(), tässä tapauksessa PHP-logoa ja tietoja PHP:n kehittämiseen osallistuneista kehittäjistä ei näkynyt.

Kommentti:

PHP 5.5.0:ssa nämä logotunnisteet ja toimivat php_logo_guid() on poistettu, data-URI-mekanismia käytetään nyt logojen näyttämiseen. Logotunnuksen lisääminen linkkiin (logon näyttämiseksi) ei siis enää toimi. Samoin expose_php-vaihtoehdon poistaminen käytöstä ei enää vaikuta PHP-logon näyttämiseen funktion lähdössä phpinfo().

disable_functions merkkijono

Tämä ohje sallii joidenkin ominaisuuksien poistamisen käytöstä turvallisuussyistä. Se hyväksyy pilkuilla erotetun funktionimien luettelon. Vikasietotila ei vaikuta disable_functions -toimintoon.

Huomio

Tämä mahdollisuus on merkitty Vanhentunut Ja POISTETTU PHP versiossa 5.3.0.

Hard_timeout kokonaisluku zend.multibyte boolean

Mahdollistaa lähdetiedostojen jäsentämisen monitavuisissa koodauksissa. zend.multibyte on otettava käyttöön, jotta voidaan käyttää merkkikoodauksia, kuten SJIS, BIG5 jne., jotka sisältävät erikoismerkkejä monitavuisissa merkkijonotiedoissa. ISO-8859-1-yhteensopivat koodaukset, kuten UTF-8, EUC jne., eivät vaadi tätä vaihtoehtoa.

zend.multibyte-käyttöoikeus edellyttää "mbstring"-laajennuksen asentamista.

Zend.script_encoding merkkijono

Tätä arvoa käytetään vain, jos komentosarjan alussa ei ole deklaraatio(encoding=...) -käskyä. Kun käytät koodauksia, jotka eivät ole yhteensopivia ISO-8859-1:n kanssa, sinun on käytettävä sekä zend.multibyte- että zend.script_encoding -asetuksia.

Literaaliset merkkijonot on transliteroitava zend.script_enconding-muodosta mbstring.internal_encodingiksi ikään kuin niitä kutsutaan mb_convert_encoding().

Zend.detect_unicode boolean

Määrittää, tarkistetaanko BOM (Byte Order Mark) ja tiedoston monitavuisten merkkien kelpoisuus. Tämä tarkistus tehdään ennen soittamista __halt_compiler(). Saatavilla vain Zend Multibyte -tilassa.

Zend.signal_check boolean

Määrittää, tuleeko korvatut signaalinkäsittelijät tarkistaa, kun komentosarja päättyy.

Exit_on_timeout boolean

Tämä käsky koskee vain Apache1 mod_php:tä, mikä saa Apache-lapsin poistumaan, jos PHP-skriptin aikakatkaisu. Tämä aikakatkaisu johtaa Apache1:n sisäiseen longjmp()-kutsuun, mikä jättää jotkin laajennukset epäjohdonmukaiseen tilaan. Kun prosessi on valmis, kaikki ratkaisemattomat lukitukset tai muisti tyhjennetään.

Resurssirajoitukset

Tämä ohje määrittää muistin enimmäismäärän tavuina, jota komentosarja saa käyttää. Tämä auttaa estämään tilanteen, jossa huonosti kirjoitettu komentosarja syö kaiken palvelimen käytettävissä olevan muistin. Poista rajoitukset asettamalla tämän direktiivin arvoksi -1 .

PHP 5.2.1:tä vanhemmissa versioissa tämän direktiivin käyttäminen oli määriteltävä käännöshetkellä. Joten määritysrivilläsi olisi pitänyt sisältää: --enable-memory-limit. Tämä käännösvaihtoehto vaadittiin myös toimintojen käyttämiseen memory_get_usage() Ja memory_get_peak_usage() versioon 5.2.1 asti.

Jos käytetään kokonaisluku tämä UKK-osio.

Suorituskyvyn viritys

Kommentti:

Määrittää PHP:ssä käytettävän realpath-välimuistin koon. Tätä arvoa tulisi suurentaa järjestelmissä, joissa PHP avaa suuren määrän tiedostoja suoritettujen tiedostotoimintojen määrän perusteella.

Koko on yhtä suuri kuin polkumerkkijonoihin tallennettujen tavujen kokonaismäärä plus välimuistissa olevaan elementtiin liittyvien tietojen koko. Tämä tarkoittaa, että pitkien polkujen tallentamiseksi välimuistiin välimuistin koon on oltava suurempi. Tämä arvo ei suoraan määritä välimuistiin tallennettavien eri polkujen määrää.

Välimuistiin tarvittava koko vaihtelee järjestelmäkohtaisesti.

realpath_cache_ttl kokonaisluku

Aika (sekunteina), jonka realpath-välimuistia käytetään määritetylle tiedostolle tai hakemistolle. Järjestelmissä, joissa tiedostot muuttuvat harvoin, tätä arvoa voidaan suurentaa.

Tietojenkäsittely

Tietojenkäsittelyn määritysasetukset
Nimi Oletus Muutoksen paikka Luettelo muutoksista
arg_separator.output "&" PHP_INI_ALL
arg_separator.input "&" PHP_INI_PERDIR
muuttujat_järjestys "EGPCS" PHP_INI_PERDIR PHP_INI_ALL PHP:ssä<= 5.0.5.
request_order "" PHP_INI_PERDIR Saatavilla PHP 5.3.0:sta
auto_globals_jit "1" PHP_INI_PERDIR Saatavilla PHP 5.0.0:sta.
register_globals "0" PHP_INI_PERDIR Poistettu PHP 5.4.0:ssa.
register_argc_argv "1" PHP_INI_PERDIR
register_long_arrays "1" PHP_INI_PERDIR Merkitty vanhentuneeksi PHP 5.3.0:ssa. Poistettu PHP 5.4.0:ssa.
enable_post_data_reading "1" PHP_INI_PERDIR Saatavilla PHP 5.4.0:sta
post_max_size "8M" PHP_INI_PERDIR
auto_prepend_file TYHJÄ PHP_INI_PERDIR
auto_append_file TYHJÄ PHP_INI_PERDIR
oletus_mimetyyppi "teksti/html" PHP_INI_ALL
oletusmerkkisarja "UTF-8" PHP_INI_ALL Oletus on "UTF-8", jonka PHP >= 5.6.0; tyhjä PHP:lle< 5.6.0.
aina_täytä_raw_post_data "0" PHP_INI_PERDIR Poistettu PHP 7.0.0:ssa.

Konfigurointiohjeiden lyhyt kuvaus.

Tätä erotinta käytetään luoduissa PHP-URL-osoitteissa argumenttien erottimena.

Arg_separator.input merkkijono

Luettelo erottimista, joita PHP käyttää muuttujien hankkimiseen URL-osoitteista.

Kommentti:

Jokaista tämän ohjeen merkkiä pidetään erottimena!

muuttujat_järjestys merkkijono

Asettaa järjestyksen, jossa EGPCS-muuttujat käsitellään ( E ympäristö, G et, P ost, C ookie ja S koskaan). Jos esimerkiksi muuttujat_järjestys on asetettu arvoon"SP"

silloin PHP luo superglobaalit $_SERVER ja $_POST, mutta ei luo $_ENV, $_GET ja $_COOKIE. Sen asettaminen arvoon "" tarkoittaa, että superglobaaleja ei asenneta. Jos legacy register_globals-direktiivi on käytössä, muuttujat_järjestys määrittää myös järjestyksen, jossa muuttujat viedään, ENV, SAADA, LÄHETTÄÄ Ja Eväste PALVELIN "EGPCS" globaaliin avaruuteen. Esimerkiksi jos muuttujan järjestys on asetettu arvoon P, register_globals on käytössä ja sekä $_GET["toiminta"] että $_POST["toiminta"] ovat olemassa, $action-muuttuja sisältää $_POST["toiminta"] arvon, koska G.

Huomio

esimerkissämme se tulee sen jälkeen merkkijono

request_order

Tämä direktiivi ohjaa järjestystä, jossa PHP lisää GET-, POST- ja Cookie-muuttujat _REQUEST-taulukkoon. Lisäys tapahtuu vasemmalta oikealle, uudet arvot korvaavat vanhat.

Jos tämän käskyn arvoa ei ole asetettu, muuttujan $_REQUEST sisällölle käytetään parametrin variables_order arvoa. Huomaa, että jakelun mukana toimitetut php.ini-tiedostot eivät sisällä arvoa turvallisuussyistä"C"

(keksit). boolean

Auto_globals_jit

Huomio

Kun tämä on käytössä, SERVER-, REQUEST- ja ENV-muuttujat luodaan heti, kun niitä käytetään ensimmäisen kerran (Just In Time), eikä komentosarjan suorittamisen alussa. Jos näitä muuttujia ei käytetä komentosarjassa, tämän direktiivin käyttöönotto parantaa suorituskykyä.

SERVER-, REQUEST- ja ENV-muuttujien käyttö tarkistetaan käännösvaiheessa, joten niiden käyttö esimerkiksi muuttujamuuttujien kanssa ei laukaise niiden alustusta. boolean

Register_globals

Huomio

Vanhentunut Rekisteröidäänkö EGPCS-muuttujat (ympäristö, GET, POST, eväste, palvelin) globaaleiksi muuttujiksi. , alkaen PHP 5.3.0:sta ja oli POISTETTU

PHP 5.4.0:ssa. boolean Register_argc_argv Kertoo PHP:lle ilmoittaako argv- ja argc-muuttujat (joka sisältää GET-tiedot). Katso myös PHP:n käyttäminen komentorivillä. boolean register_long_arrays Kertoo PHP:lle rekisteröidäänkö vanhoja pitkiä ennalta määritettyjä muuttujia, kuten $HTTP_*_VARS . Jos käytössä (oletus), pitkät ennalta määritetyt PHP-muuttujat, kuten $HTTP_GET_VARS, ilmoitetaan. Jos et käytä niitä, suosittelemme poistamaan ne käytöstä suorituskykysyistä. Sen sijaan tulisi käyttää superglobaalisia taulukoita, kuten $_GET.

Huomio

Tämä ohje tuli saataville PHP 5.0.0:ssa. Vanhentunut Rekisteröidäänkö EGPCS-muuttujat (ympäristö, GET, POST, eväste, palvelin) globaaleiksi muuttujiksi. , alkaen PHP 5.3.0:sta ja oli POISTETTU

Tästä mahdollisuudesta tiedotettiin boolean Kun tämä vaihtoehto ei ole käytössä, superglobaalit muuttujat $_POST ja $_FILES ei täyttää. Ainoa tapa lukea POST-tiedot on lukea php://input stream-kääre. Tästä voi olla hyötyä välityspalvelimen lähettämisessä tai POST-tietojen käsittelyssä muistia tehokkaammin. kokonaisluku post_max_size Asettaa suurimman sallitun koon POST-menetelmällä lähetettäville tiedoille. Tämä arvo vaikuttaa myös tiedostojen latauksiin. Jos haluat ladata suuria tiedostoja, tämän arvon on oltava suurempi kuin upload_max_filesize-direktiivin arvo. Jos käytetään kokonaisluku Pohjimmiltaan arvon memory_limit on oltava suurempi kuin post_max_size . , arvo mitataan tavuina. Voit myös käyttää lyhennettyä merkintää, joka on kuvattu tässä FAQ:ssa.

Jos POST-tietojen koko on suurempi kuin post_max_size, $_POST- ja $_FILES superglobaalimuuttujat ovat tyhjiä. Tätä voidaan seurata monin eri tavoin, esimerkiksi välittämällä $_GET-muuttuja dataa käsittelevälle skriptille, ts.

Kommentti:

ja tarkista sitten onko $_GET["prosessoitu"]-muuttuja asetettu.

PHP sallii tavuarvojen lyhenteet, mukaan lukien K (kilo), M (mega) ja G (giga). PHP muuntaa kaikki nämä lyhenteet automaattisesti. Ole varovainen ylittämästä 32-bittistä kokonaislukualuetta (jos käytät 32-bittistä versiota), koska tämä aiheuttaa skriptivirheen. merkkijono

auto_prepend_file Määrittää tiedoston nimen, joka käsitellään automaattisesti ennen päätiedostoa. Tiedostoa kutsutaan ikään kuin se olisi sisällytetty funktion avulla vaatia

joten myös include_path käytetään. Erityinen merkitys ei mitään

poistaa tämän direktiivin käytöstä. merkkijono

Auto_append_file Määrittää tiedoston nimen, joka käsitellään automaattisesti ennen päätiedostoa. Tiedostoa kutsutaan ikään kuin se olisi sisällytetty funktion avulla Määrittää tiedoston nimen, joka käsitellään automaattisesti päätiedoston jälkeen. Tiedostoa kutsutaan ikään kuin se olisi sisällytetty funktion avulla

joten myös include_path käytetään. Erityinen merkitys ei mitään

Kommentti: , joten myös include_path käytetään. Jos skripti poistuu komennolla exit() ,Liitä automaattisesti EI

suoritettu. merkkijono

oletus_mimetyyppi

Oletusarvoisesti PHP näyttää koodausnimen Content-Type-otsikossa. Jos sinun ei tarvitse välittää koodausta, jätä tämä vaihtoehto tyhjäksi.

"mediatyyppi" on oletuksena "text/html". merkkijono

Default_charset PHP 5.6:ssa ja uudemmissa versioissa "UTF-8" on oletusarvo ja sitä käytetään funktioiden oletuskoodauksena, htmlentiteetit() html_entity_decode() Ja, jos koodausparametria ei ole määritetty. default_charset-arvoa käytetään myös oletuskoodauksen määrittämiseen iconv-funktioille, jos iconv.input_encoding-, iconv.output_encoding- ja iconv.internal_encoding-määritysasetuksia ei ole asetettu, ja mbstring-funktioille, jos mbstring.http_input mbstring.http_output mbstring.internal_encoding aseta.

Kaikki PHP:n versiot käyttävät tätä arvoa PHP:n lähettämän standardin Content-Type-otsikon koodauksena, ellei tätä otsikkoa korvaa funktiokutsu otsikko().

Input_encoding merkkijono

Output_encoding merkkijono

Saatavilla PHP 5.6.0:sta. Tätä asetusta käytetään monitavuisissa moduuleissa, kuten mbstring ja iconv. Oletusarvo on tyhjä.

Sisäinen_koodaus merkkijono

Saatavilla PHP 5.6.0:sta. Tätä asetusta käytetään monitavuisissa moduuleissa, kuten mbstring ja iconv. Oletusarvo on tyhjä. Tässä tapauksessa käytetään oletusmerkkisarjaa.

Aina_täytä_raw_post_data sekoitettu

Huomio

Tämä toiminto otetaan huomioon Vanhentunut PHP 5.6.0 ja , alkaen PHP 5.3.0:sta ja oli PHP 7.0.0:ssa.

Jos asennettuna TOTTA, silloin PHP muodostaa aina $HTTP_RAW_POST_DATA raaka-POST-tiedoista. Muutoin muuttuja linkitetään vain, jos MIME-tyyppiä ei tunnisteta.

Suositeltu menetelmä raaka-POST-tietojen käyttämiseen on php://input , ja $HTTP_RAW_POST_DATA on vanhentunut PHP 5.6.0:n jälkeen. Asetetaan aina_populate_raw_post_data arvoksi -1 määrittää uuden toiminnan, joka otetaan käyttöön tulevissa PHP-versioissa, kun $HTTP_RAW_POST_DATA ei ole enää käytössä.

Polut ja hakemistot

Polun ja hakemiston määritysasetukset
Nimi Oletus Muutoksen paikka Luettelo muutoksista
sisällytä_polku ".;/polku/php/päärynä" PHP_INI_ALL
open_basedir TYHJÄ PHP_INI_ALL PHP_INI_SYSTEM PHP:ssä< 5.3.0
doc_root TYHJÄ PHP_INI_SYSTEM
user_dir TYHJÄ PHP_INI_SYSTEM
user_ini.cache_ttl "300" PHP_INI_SYSTEM Saatavilla PHP 5.3.0:sta lähtien.
user_ini.filename ".user.ini" PHP_INI_SYSTEM Saatavilla PHP 5.3.0:sta lähtien.
laajennus_hakemisto "/polku/php" PHP_INI_SYSTEM
laajennus TYHJÄ Vain php.ini
zend_extension TYHJÄ Vain php.ini
zend_extension_debug TYHJÄ Vain php.ini Saatavilla PHP 5.3.0 asti.
zend_extension_debug_ts TYHJÄ Vain php.ini Saatavilla PHP 5.3.0 asti.
zend_extension_ts TYHJÄ Vain php.ini Saatavilla PHP 5.3.0 asti.
cgi.check_shebang_line "1" PHP_INI_SYSTEM Saatavilla PHP 5.2.0:sta.
cgi.discard_path "0" PHP_INI_SYSTEM Saatavilla PHP 5.3.0:sta.
cgi.fix_pathinfo "1" PHP_INI_SYSTEM
cgi.force_redirect "1" PHP_INI_SYSTEM PHP_INI_ALL ennen PHP 5.2.1.
cgi.nph "0" PHP_INI_SYSTEM Saatavilla PHP 5.3.0:sta.
cgi.redirect_status_env TYHJÄ PHP_INI_SYSTEM PHP_INI_ALL ennen PHP 5.2.1.
cgi.rfc2616_headers "0" PHP_INI_ALL
fastcgi.impersonate "0" PHP_INI_SYSTEM PHP_INI_ALL ennen PHP 5.2.1.
fastcgi.logging "1" PHP_INI_SYSTEM PHP_INI_ALL ennen PHP 5.2.1.

Konfigurointiohjeiden lyhyt kuvaus.

Määrittää luettelon hakemistoista, joissa toimintoja Määrittää tiedoston nimen, joka käsitellään automaattisesti ennen päätiedostoa. Tiedostoa kutsutaan ikään kuin se olisi sisällytetty funktion avulla, sisältää, fopen(), tiedosto(), lue tiedosto () Ja file_get_contents() etsii tiedostoja. Muoto noudattaa PATH-järjestelmäympäristömuuttujan muotoa: luettelo hakemistoista, jotka on erotettu kaksoispisteellä Unixissa tai puolipisteellä Windowsissa.

Kun etsit sisällyttäviä tiedostoja, PHP tarkastelee jokaista include_path-arvoa erikseen. Se tarkistaa ensimmäisen polun, jos tiedostoa ei löydy siitä, siirtyy seuraavaan, ja niin edelleen, kunnes se löytää mukana olevan tiedoston tai palauttaa varoituksen tai virheen. Voit muuttaa include_path-arvoa, kun komentosarja on käynnissä funktion avulla set_include_path().

Esimerkki 1 include_path Unixissa

include_path=".:/php/sisältää"

Esimerkki #2 include_path Windowsissa

include_path=".;c:\php\sisältää"

Käyttö . kohdassa include_path voit määrittää suhteelliset polut tiedostojen sisällyttämiselle, koska piste tarkoittaa nykyistä hakemistoa. Se on kuitenkin tehokkaampi käyttää sisältää "./file" kuin pakottaa PHP tarkistamaan nykyisen hakemiston aina, kun jokainen tiedosto sisällytetään.

Kommentti:

Ympäristömuuttujat ( Jos legacy register_globals-direktiivi on käytössä, muuttujat_järjestys määrittää myös järjestyksen, jossa muuttujat viedään) ovat saatavilla myös .ini-tiedostoina. Siten on mahdollista viitata kotihakemistoon direktiiveillä $(KIRJAUDU) Ja $(KÄYTTÄJÄ).

Ympäristömuuttujat voivat vaihdella eri palvelinsovellusliittymien välillä, koska itse ympäristöt eroavat toisistaan.

Esimerkki #3 Asetus include_path käyttämällä ympäristömuuttujaa $(USER) Unixissa

include_path = ".:$(KÄYTTÄJÄ)/päärynä/php"

Open_basedir merkkijono

Rajoittaa määritettyyn hakemistopuuhun tiedostot, joita PHP voi käyttää, mukaan lukien itse tiedoston. Tämä direktiivi ,Liitä automaattisesti vikasietotila vaikuttaa.

Kun komentosarja yrittää päästä tiedostoon esimerkiksi funktion avulla fopen() tai gzopen(), tiedoston sijainti tarkistetaan. Jos tiedosto on määritetyn hakemistopuun ulkopuolella, PHP kieltäytyy avaamasta sitä. Kaikki symboliset linkit laajenevat, joten ne eivät voi ohittaa tätä rajoitusta. Jos tiedostoa ei ole olemassa, symbolista linkkiä ei voida lukea ja tiedoston nimi (lue) otetaan huomioon open_basedir .

Vaihtoehto open_basedir voi koskea paitsi toimintoja tiedostojärjestelmän kanssa työskentelemiseen; esimerkiksi jos MySQL määritetty käyttämään ohjainta mysqlnd, Tuo LATAA TIEDOT INFILE kuuluu vaihtoehdon alle open_basedir. Myös paljon PHP-toimintoja on käytössä open_basedir.

Erityinen merkitys. osoittaa, että komentosarjan työhakemistoa käytetään perushakemistona. Tämä on kuitenkin hieman vaarallista, koska nykyistä komentosarjahakemistoa voidaan helposti muuttaa chdir().

httpd.conf:ssa, open_basedir voidaan poistaa käytöstä (esimerkiksi joillekin virtuaalisille koneille) samalla tavalla kuin mikä tahansa muu määritysohje: " php_admin_value open_basedir ei mitään".

Windowsissa erota hakemistot puolipisteillä. Kaikissa muissa järjestelmissä erota hakemistot kaksoispisteellä. Kun ajetaan Apache-moduulina, polut open_basedir peritään automaattisesti päähakemistoista.

Raja määritelty open_basedir on hakemiston nimi PHP-versioista 5.2.16 ja 5.3.4 lähtien. Aiemmat versiot käyttivät tätä arvoa etuliitteenä. Se tarkoittaa sitä " open_basedir = /dir/incl"antaa myös pääsyn" /dir/include"ja" /dir/incls" jos niitä on olemassa. Jos haluat rajoittaa pääsyn vain määritettyyn hakemistoon, lisää vinoviiva loppuun. Esimerkki: open_basedir = /dir/incl/

Oletuksena kaikki tiedostot voidaan avata.

Kommentti:

PHP 5.3.0:sta lähtien open_basedir-arvoa voidaan tehdä rajoittavammaksi komentosarjan suorittamisen aikana. Tämä tarkoittaa, että jos open_basedir on asetettu arvoon /www/ php.ini -tiedostossa, komentosarja voi pakata kokoonpanon muotoon /www/tmp/ ajon aikana käyttäen ini_set(). Kun määrität useita hakemistoja, voit käyttää vakiota PATH_SEPARATOR käyttöjärjestelmästä riippumattomana polun erottimena.

Kommentti:

Open_basedir-vaihtoehdon käyttäminen asettaa realpath_cache_size -arvoksi 0 ja näin sammuu realpath-välimuisti.

doc_root merkkijono

PHP "juurihakemisto" tällä palvelimella. Käytetty vain jos ei ole tyhjä. Jos PHP on määritetty vikasietotilaan, tämän hakemiston ulkopuolisia tiedostoja ei käsitellä. Jos PHP:tä ei ole käännetty FORCE_REDIRECT:llä, sinä pitäisi aseta doc_root, jos käytät PHP:tä CGI:nä missä tahansa verkkopalvelimessa (paitsi IIS). Vaihtoehtona on käyttää määritysohjetta cgi.force_redirect zend_extension_debug cgi.discard_path boolean

Jos se on sallittua, PHP CGI -binaari voidaan sijoittaa turvallisesti verkkopuun ulkopuolelle, eivätkä ihmiset voi ohittaa .htaccess-suojausta.

Cgi.fix_pathinfo boolean

Tarjoaa tukea oikea PATH_INFO/PATH_TRANSLATED CGI:ssä. Aiemmin PHP oli yksinkertaisesti asennettu PATH_TRANSLATED V SCRIPT_FILENAME eikä kiinnittänyt huomiota PATH_INFO. Lisätietoja aiheesta PATH_INFO, katso CGI-spesifikaatiot. Asetetaan tämä arvo 1 pakottaa PHP CGI:n korjaamaan polkunsa määrityksen mukaisesti. Arvo 0 vastaa edellistä käyttäytymistä. Oletusarvoisesti vaihtoehto on käytössä. Sinun tulee korjata skriptit niin, että ne käyttävät SCRIPT_FILENAME sijasta PATH_TRANSLATED.

Cgi.force_redirect boolean

cgi.force_redirect-direktiiviä tarvitaan turvallisuuden varmistamiseksi, kun PHP toimii CGI-muodossa useimmissa web-palvelimissa. Jos se jätetään määrittelemättä, PHP ottaa tämän direktiivin oletusarvoisesti käyttöön. Voit sammuttaa sen omalla vastuulla.

Kommentti:

Windows-käyttäjät: Kun käytät IIS:ää, tämä vaihtoehto on pakko olla vammainen. Sama tarvitaan OmniHTTPD:lle ja Xitamille.

cgi.nph boolean

Jos cgi.nph on käytössä, cgi pakottaa 200-koodin palauttamaan jokaisessa pyynnössä.

Cgi.redirect_status_env merkkijono

Jos cgi.force_redirect on käytössä etkä käytä Apache- tai Netscape (iPlanet) -verkkopalvelinta, Voi olla Sinun on asetettava ympäristömuuttuja, jota PHP etsii varmistaakseen, että se voi jatkaa suorittamista.

Kommentti:

Tämän muuttujan asettaminen Voi olla aiheuttaa turvallisuusongelmia, joten sinun täytyy tietää mitä olet tekemässä.

cgi.rfc2616_headers int

Kertoo PHP:lle, minkä tyyppisiä otsikoita tulee käyttää lähetettäessä HTTP-vastauskoodia. Jos arvo on 0, PHP lähettää » RFC 3875 "Status:"-otsikon, jota Apache ja muut verkkopalvelimet tukevat. Jos arvo on 1, PHP lähettää » RFC 2616:n mukaiset otsikot.

Jos tämä vaihtoehto on käytössä ja käytät PHP:tä CGI-ympäristössä (kuten PHP-FPM), niin RFC 2616 -tyylisten HTTP-vastausotsikoiden sijaan tulisi käyttää RFC 3875 -vastaavaa esimerkiksi header("HTTP /1.0 404 Ei löydy"); sinun on käytettävä header("Tila: 404 Ei löydy");

Jätä se arvoon 0, jos et ole varma, mitä se tarkoittaa.

Fastcgi.impersonate merkkijono

FastCGI IIS:ssä (WINNT-pohjaisessa käyttöjärjestelmässä) tukee mahdollisuutta esiintyä soittavan asiakkaan suojausoikeuksina. Tämän avulla IIS voi määrittää suojauskontekstin, jossa pyyntö tehdään. Apachen mod_fastcgi ei tällä hetkellä tue tätä ominaisuutta (17.3.2002). Aseta arvoksi 1, kun käytössä on IIS. Oletusarvo on nolla.

Fastcgi.logging, niin oletusjärjestelmän hakemisto on sallittava, jotta tiedostot voidaan ladata onnistuneesti.

Jos tämä on käytössä, oletusarvoja käyttävät tietokantayhteystoiminnot käyttävät näitä arvoja välitettyjen argumenttien sijaan. Katso oletusarvot asianmukaisten tietokantayhteystoimintojen dokumentaatiosta.

Huomio

Tämä vaihtoehto , alkaen PHP 5.3.0:sta ja oli PHP 7.2.0:ssa.

Windows-käyttöjärjestelmän erikoisasetukset

Konfigurointiohjeiden lyhyt kuvaus.

Kun tämä ohje on käytössä, Windowsin CRT-varoitukset näytetään. Nämä varoitukset näytettiin aiemmin oletuksena ennen PHP 5.4.0:aa.

Voit valita, mitä PHP-versiota käytetään isännöintitilillesi. Erikoiskomponentin avulla voit valita paitsi PHP-version, myös joukon moduuleja tilillesi.

PHP-version valinta

Voit tehdä tämän siirtymällä cPanel-tilillesi ja valitsemalla sitten ""-osion > menemällä valikkoon Valitse PHP-versio"> valitse haluamasi PHP-versio avattavasta luettelosta ja napsauta painiketta " Aseta nykyiseksi" Huomaa, että tätä asetusta sovelletaan välittömästi koko isännöintitiliin, eikä eri versioita voi käyttää eri sivustoille.

Seuraavat PHP-versiot ovat saatavilla: 4.4.x, 5.1.x - 5.6.x., 7.0.x - 7.3.x.

Jos sinun on asennettava eri PHP-versio tilisi toiselle sivustolle, halutun sivuston tiedostot sisältävään hakemistoon lisätään .htaccess-tiedosto, jossa on jokin seuraavista riveistä:

# PHP versiolle 7.0 SetHandler-sovellus/x-httpd-alt-php70 # PHP versiolle 5.3 SetHandler-sovellus/x-httpd-alt-php53

Jokaisella versiolla, kuten näet, on oma merkityksensä. Tätä voidaan muuttaa tarvitsemasi version mukaan, php 7.3 asti.

PHP-ohjeiden ja laajennusten valitseminen

Voit itsenäisesti ottaa käyttöön tai poistaa käytöstä tiettyjä PHP-laajennuksia tilissäsi. Voit tehdä tämän siirtymällä cPanel-tilillesi ja valitsemalla sitten osion " Ohjelmistot ja palvelut"> siirry valikkoon" Valitse PHP-versio»> avautuvalla sivulla on luettelo kaikista saatavilla olevista laajennuksista. Voit valita tarvittavat laajennukset ja napsauttaa sivun alareunassa Tallenna.

Mitä tulee ohjeisiin, sinun on siirryttävä cPanel-tiliisi ja valittava sitten osio " Ohjelmistot ja palvelut"> siirry valikkoon" Valitse PHP-versio» > « Vaihda PHP-asetuksiin" ja määritä vaaditut arvot seuraaville parametreille (Nämä muutokset edellyttävät /etc/php.ini-tiedoston päivittämistä):

salli_url_fopen
display_errors
error_reporting
file_uploads
sisällytä_polku
log_errors
mail.force_extra_parameters
max_execution_time
max_input_time
max_input_vars
muistiraja
open_basedir
post_max_size
session.save_path
short_open_tag
suhosin.post.max_vars
suhosin.request.max_vars
upload_max_fisize
upload_tmp_dir

Jos sinun on ylikuormitettava muita PHP-ohjeita, sinun on käytettävä paikallista php.ini-tiedostoa. Käyttääksesi sitä sinun on luotava tämä tiedosto tarvittavilla PHP-asetuksilla PHP-skriptien kansioon. Jos esimerkiksi joudut muuttamaan jonkin skriptisi parametria “upload_max_filesize”, “register_globals” jne. sen komentosarjan kansiossa public_html, johon näitä asetuksia tulee soveltaa, sinun on luotava tiedosto. nimeltä "php.ini", jonka sisältö on seuraava:


upload_max_filesize = 128M
muistiraja = 168M
max_execution_time = 60
max_input_time = 120
postin_maksimikoko = 32 m
register_globals = Päällä

Yllä olevien lisäksi voit säätää myös seuraavia parametreja:

salli_url_fopen
display_errors
error_reporting
file_uploads
sisällytä_polku
log_errors
magic_quotes_gpc
mail.force_extra_parameters
max_input_vars
open_basedir
turva tila
safe_mode_exec_dir
safe_mode_include_dir
session.save_path
short_open_tag
suhosin.get.max_value_length
suhosin.post.max_vars
suhosin.request.max_varname_length
suhosin.request.max_vars

Huomaa, että tämän php.ini-tiedoston sisältöä sovelletaan vain php-tiedostoihin siinä hakemistossa, jossa se luotiin. Eli jos hakemisto, jossa php.ini-tiedosto sijaitsi, sisältää php-tiedostojen lisäksi myös hakemistoja, joissa on omat php-tiedostonsa, php.ini-toiminto ei koske niitä. Päinvastaisen vaikutuksen saavuttamiseksi (teknisesti ottaen php.inin käskyjen soveltaminen rekursiivisesti), sinun on lisättävä seuraavat rivit sen hakemiston .htaccess-tiedostoon, jossa php.ini-tiedosto sijaitsee: SetEnv PHPRC<прямой полный путь к php.ini файлу>Tämän jälkeen määritetyn php.ini-tiedoston vaikutus koskee myös php-tiedostoja, jotka sijaitsevat sen hakemiston sisällä, jossa määritetty php.ini-tiedosto sijaitsee.

Voit lukea lisää PHP-version ja php.inin määrittämisestä meidän cPanelissa.

Huomautus: LiteSpeed ​​​​PHP (LSPHP) on otettu käyttöön komentosarjojen suorittamiseksi virtuaalisilla isännöintipalvelimillamme. Eli ei tarvitse myöntää kirjoitusoikeuksia koko web-palvelimelle, kuten tapahtuu joillakin isännöintisivustoilla, joissa Apache on mod_PHP.

Etsitkö jotain verkkosivustollesi? Katso tarjouksemme. Et voi vain tilata virtuaalista isännöintiä tai VPS:ää, vaan myös säästää rahaa vastaanottamalla verkkotunnuksen lahjaksi. Tarvitsetko lisää vapautta ja voimaa? Omat palvelimemme ilahduttavat sinua edullisilla hinnoilla.

phpBB-foorumimoottorilla on paljon etuja, se on kätevä sekä käyttäjille että moderaattoreille, ja sen seurauksena se on erittäin suosittu. Mutta juuri sen suosio aiheuttaa sen suurimman haittapuolen - se lähetetään roskapostiksi ja lähetetään automaattisesti. Jonkin ajan kuluttua jatkuva uusien väärennettyjen käyttäjien rekisteröintien virta ja heiltä tulevat roskapostiviestit voivat murskata sivuston hallinnon hermoja.

PhpBB-versio 3.* peruspaketissa sisältää jopa 4 captcha-vaihtoehtoa, joita voidaan tarjota käyttäjille rekisteröityessään foorumille. Niitä on jopa recaptcha Tämä ei kuitenkaan ole esteenä automaattisille lähettäjille, kuten käytäntö osoittaa.

Nämä ohjelmat tietävät, miltä tyypilliset sisääntulokohdat eri foorumikoneiden rekisteröintisivuille näyttävät. Tämä tieto perustuu web-sivujen DOM-mallien tunnistamiseen, jotka sisältävät lomakkeita uusien käyttäjien rekisteröintiä, viestien lähettämistä ja niin edelleen. Eli esimerkiksi phpBB:n tapauksessa robotti tietää, että rekisteröinnin aloituspiste sijaitsee osoitteessa /ucp.php?mode=register ja että tällä sivulla on painike, kuten:

Menemättä teknisiin yksityiskohtiin huomautan, että voit löytää ja napsauttaa tämän painikkeen HTML-dokumentista ainakin tunnuksen tai nimen perusteella.

Heti kun robotti saavuttaa captcha-sivun, se vastaanottaa captcha-kuvan ja yrittää tunnistaa sen. Tässä voidaan käyttää erilaisia ​​tekniikoita ohjelman kehittyneisyydestä riippuen OCR-algoritmeista yksinkertaiseen elävän ihmisen suorittamaan captcha-tunnistukseen. Tästä syystä suojaus ei toimi. IP-osoitteiden kieltäminen foorumilla on myös täysin hyödytöntä, koska robotit lähettävät roskapostia useiden välityspalvelinten kautta. Tässä mielessä ei ole väliä kieltää osoitteita tai puhdistaa uudet automaattiset rekisteröinnit tavalla tai toisella, kaikki on ajanhukkaa.

Osoittautuu, että ainoa tapa katkaista automaattiset lähettäjät on muokata hieman foorumin sisääntulokohdan merkintää ainutlaatuisella tavalla. Kaksi tai kolme vuotta sitten tein tämän tempun phpBB2:lle ja se toimi - automaattiset rekisteröinnit pysähtyivät. Sama asia vahvistettiin äskettäin toisella sivustolla, jo phpBB3-moottorissa.

Seuraavaksi annan erityisen todistetun esimerkin phpBB-rekisteröintisivun muokkaamisesta. Haluaisin kuitenkin tehdä varauksen, että tämä viesti tarjoaa suojan automaattisia rekisteröintejä vastaan ​​​​foorumeilla, ei erityisiä menetelmiä. Kaikki riippuu foorumin ylläpitäjän käsistä ja johtajasta. HTML:n ja css:n perustiedot on suositeltavaa. Jos lukijat alkavat kopioida tätä menetelmää massalla, roskapostittajat ohjelmoivat tämän "heuristisen" ohjelmistoonsa ja automaattiset rekisteröinnit jatkuvat.

Joten valitse phpBB-foorumin asetuksista yksinkertaisin captcha “CAPTHA ilman GD:tä”.
Se näyttää selaimessa tältä (FF3):

Jos katsot rekisteröintisivun merkintää captcha-kuvan alueella, se näyttää tältä:

Itse asiassa img-tunnisteen src-attribuutti sisältää kuvan, jossa on captcha. Avaa kansio, jossa nykyinen aihe on asennettu foorumille. Minun tapauksessani se on prosilver: /forum/styles/prosilver/template. Siitä löydämme tiedoston captcha_default.html. Jos katsot tätä mallia, näet paikan, jossa yllä oleva merkintä muodostetaan:

Tehdään automaattisten lähettäjien elämästä vaikeampaa pienellä eleellä:

Se näyttää nyt selaimessa tältä:

Olen samaa mieltä, se ei ole kovin mukavaa, mutta nyt järjestelmänvalvojan hermot ovat kunnossa. Tavalliset käyttäjät voivat silti rekisteröityä. Tietenkin, kun päivität moottorin uudempaan versioon, sinun on muistettava tehdä tämä korjaus uudelleen. Toivon, että rohkeat phpbb-käyttäjät eivät jää tähän esimerkkiin, vaan keksivät muita tapoja muuttaa sisääntulokohtaa ehdotetun suojauskonseptin mukaisesti.


2024, leally.ru - Opas tietokoneiden ja Internetin maailmaan