Autor | Zpráva | ||
---|---|---|---|
fmedic Profil |
#1 · Zasláno: 4. 6. 2011, 18:56:04
Zdravím,
celý svůj systém jsem budoval na hostingu Forpsi.com a teď nastal problém. Zabezpečení mám udělané jednoduše tak, že na začátku každého souboru je podmínka, pokud session abc obsahuje def, zobrazí se obsah a pokud neobsahuje, přesměruje se pomocí header(); na přihlašovací stránku. Nevím, jak jinak to řešit, ale tohle se mi zdá jako nejlepší řešení.. Když jsem ale systém přesunul na jiný server, přesměrování nefungovalo.. Trochu jsem googlil a zjistil jsem, že před header(); nesmí být žádný výstup, jedině pokud se na začátek stránky umístí ob_start();, to by pro mě ale znamenalo, že bych musel změnit kódování stránky, neboť UTF-8 již samo přidává na začátek souboru pár neviditelných znaků.. Chci se tedy zeptat, zda máte někdo lepší řešení pro zabezpečení, nebo jestli musím soubory překódovat a přidat ob_start();y.. Děkuju za odpověď (: |
||
Davex Profil |
#2 · Zasláno: 4. 6. 2011, 19:11:36 · Upravil/a: Davex
Jestliže běží na novém webhostingu Apache, tak si zapni buferování těmito řádky v souboru .htaccess:
php_flag output_buffering On Nebo hledej, zda lze buferování zapnout v administraci hostingu nebo vlastním konfiguračním souboru php.ini, .user.ini apod. Krom toho můžeš soubory nechat v UTF-8 a uložit je bez BOM. |
||
Joker Profil |
#3 · Zasláno: 4. 6. 2011, 19:15:36
Druhá varianta:
fmedic: „neboť UTF-8 již samo přidává na začátek souboru pár neviditelných znaků“ Ne nezbytně, záleží na nastavení editoru. |
||
DarkMeni Profil |
#4 · Zasláno: 4. 6. 2011, 20:55:18
s BOM jsem měl nedávno problém, ale v Notepadu++ je funkce která to bezproblémově převede na "ANSI as UTF-8" to je něco jako UTF-8 bez těch neviditelných znaků, akorád je tam pak zase jiný problém se zdrojovým kódem, ale na ten se většinou nikdo nekouká.
ALE: jestliže to přesměrování mělo sloužit jako ochrana třeba před nedovoleným vstupem do souboru který je dostupný jen pro přihlášené a nebo je to něco jako řidič webu který se připojí k databázi a obsahuje některé užitečné fuknce tak pak možná stačí die(header("Location: login.php")); ale to mě jen tak v rychlosti napadlo a nevim jestli to něco udělá |
||
Časová prodleva: 13 let
|
0