Autor Zpráva
spartan13
Profil
Dobrý den,
rád bych se zeptal, kam ukládat důležitá data typicky pro připojení k databázi apod. Jde samozřejmě o to, aby je někdo nemohl z webu "přečíst". (O bezpečnosti se přiznám, že toho příliš nevím, kromě klasických útoků.) Předpokládám, že kdybych např. uložit do souboru index.php v kořenovém adresáři tyto informace, tak jelikož je tento soubor přístupný mohl by jej vlastně kdokoliv přečíst (ačkoliv sám tedy nevím jak, jelikož prohlížeč zobrazí samozřejmě pouze html - pokud se do toho souboru lze dostat můžu se zeptat jak, abych si to mohl zkontrolovat).

Je např. bezpečná varianta, kdy takovýto soubor, který nebude mít povolený přístup "z venčí", vložím (include, require) do aplikace (např. tedy do souboru index.php, který je samozřejmě dostupný).

Děkuji za odpovědi, nebo odkázání na zdroj.
Darker
Profil
Kód mezi uvozovacími značkami PHP nikdo zvenčí pouhým dotazem na soubor zobrazit nemůže - tento kód se spustí a uživatel uvidí akorát to, co sám vypíšeš.
Pokud ale chceš mít extra jistotu, můžeš udělat dvě věci:
A)

index.php

define("INCLUDED",true);
include("db.php"); //pristupove udaje

db.php

if(!defined("INCLUDED"))
  exit;
Tuhle ochranu vídám často, ale popravdě mi moc smysluplná nepřipadá, obsah db.php se nezobrazí tak jako tak.
B)

.htaccess

RewriteRule ^db.php$ - [F]
spartan13
Profil
takže pokud by mi nevadila "nepřehlednost" kódu, nebyl by problém ani v případě souboru běžně dostupného jako např. bývá index.php ?
Darker
Profil
spartan13:
takže pokud by mi nevadila "nepřehlednost" kódu, nebyl by problém
Ne, to nebyl. Ale zrovna přístupy do databáze budeš určitě potřebovat i jinde a tak ti externí soubor ušetří hodně práce.
ShiraNai7
Profil
Darker:
Tuhle ochranu vídám často, ale popravdě mi moc smysluplná nepřipadá, obsah db.php se nezobrazí tak jako tak.

Dělá se to především kvůli možných register_globals v adresářích, který je pod webovým rootem. Kdyby skript obsahoval jen definice proměnných tak je to jedno, ale jinak to smysl má.
spartan13
Profil
Darker:
nevím, jestli to dělám špatně, možná ano. Ale já používám přístup, kdy přes htaccess směřuji veškeré dotazy na index.php v kořenovém adresáři, ten si vytváří objekty pro připojení , router apod. a vše tak vlastně pracuje pouze přes ten index. Zatím jsem na překážku, kdy by mi tento přístup vadil nenarazil ale pokud má někdo lepší zkušenosti, budu rád pokud se o ně podělí.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: