« 1 2 »
Autor Zpráva
quatzael
Profil
Potřeboval bych poradit kvůli zabezpečení administrátorského rozhraní ohledně toho kam ho nejlépe umístit.

Jestli je vhodnější ho umístit do domény třetího řádu: admin.mojedomena.cz nebo spíš na www.mojedomena.cz/admin123456789.

Zajímalo by mě jaká je běžná praxe a co je bezpečnější..
jenikkozak
Profil
Na umístění zas tak moc nezáleží. Administrátorské rozhraní by mělo být chráněno lépe než jen tajnou URL. Ta se totiž ukládá do historie prohlížeče, případně se může pomocí refereru posílat na cizí webové stránky.
DarkKnight
Profil
Souhlasím s jenikkozakem, doporučil bych aby jste si pořídil MySql databázi a udělal si tabulku uzivatele a po přihlášení do webu a splnění podmínky if($opravneni = 2) se zobrazí obsah administrace...
quatzael
Profil
DarkKnight:
if($opravneni = 2)

MySQL už samozřejmě dávno mám. Mě spíš šlo o to, jak se to běžně řeší, jaká je běžná praxe u větších projektů, kde je potřeba admin rozhraní pro pracovníky spracovávající objednávky od zákazníků.

Mimochodem kdybych tam dal tu Vaši zmíněnou podmínku, tak to zpřístupním úplně všem..
Str4wberry
Profil
A jde vám o podobu URL, nebo o fysické umístění skriptů administrace?
quatzael
Profil
Str4wberry:
Oboje.
Str4wberry
Profil
Takže.
1) Subdoména přinese jistá specifika. Nepůjde normální AJAX mezi hlavní doménou a subdoménou, s cookies bude také větší legrace, ale nic neřešitelného. Jinak je to jen URL, takže celkem jedno.
2) Aplikaci je vhodné umístit mimo složku přístupnou z venčí. A potom už je to také jedno.

Ad 2) Tím myslím, že veřejná složka je /www a aplikace je v /aplikace, nikoliv v /www/aplikace. V souboru /www/index.php je potom něco, co vloží aplikaci z ../aplikace/*. Proč? Pokud se to tak neudělá a na serveru se něco porouchá, může se stát, že si návštěvník bude moci procházet skripty aplikace včetně třeba přístupu do databáse.
quatzael
Profil
Str4wberry:
to je pak asi lepší dávat taky mimo /www prakticky všechny includovaný soubory, ne?
A to vkládání jde jen pomocí include? Není v tom nějakej další háček?
Str4wberry
Profil
to je pak asi lepší dávat taky mimo /www prakticky všechny includovaný soubory, ne?
Ano, ideálně by tam mělo být jen to, co je stejně veřejně přístupné (obrázky, CSS, JavaScript). Samotné skripty a zejména citlivé soubory s hesly je třeba schovat.

A to vkládání jde jen pomocí include? Není v tom nějakej další háček?
Záleží, jak je aplikace napsaná.
DarkKnight
Profil
Je samozřejmostí, že si tam budeš muset udělat výpisy a jestli budeš chtít stupňovat oprávnění, tak si budeš jednoduše hrát s čísly ve sloupečku a budeš přidělovat podmínky v závislosti na požadavcích :)
quatzael
Profil
DarkKnight:
já jsem narážel na to, že jsi udělal chybu v podmínce, když jsi tam napsal "="..
samozřejmě s různými stupni oprávnění počítám, to pro mě není vůbec problém vyřešit..


Str4wberry:
Záleží, jak je aplikace napsaná.
Co to znamená?? Bude fungovat běžný odkaz z index.php na includovaný script, který je mi to /www??
Luky
Profil
quatzael:
Ve složkách, které nejsou z venku přístupné (v tvém případě složky mimo www) jsou většinou zakázány prohlížet (přes protokol HTTP případně HTTPS) viz htaccess. Se soubory uvnitř "nepřístupných" složek však mohou pracovat PHP scripty na úrovni aplikace (include apod.).

Bude fungovat běžný odkaz z index.php na includovaný script, který je mi to /www?
V tomto případě by běžný odkaz určitě nefungoval. Includování však fungovat bude.
Zkus se mrknout na tuto strukturu Nette
Str4wberry
Profil
1) Pokud je aplikace napsaná tak, že každá akce je samostatný skript, tedy např. přijde požadavek na upravitClanek.php, bude muset nějaký skript teprve vložit tento soubor.
2) Pokud bude aplikace napsaná tak, že požadavek má přijít na index.php?akce=upravitClanek, tak se nic moc složitého měnit nemusí.
quatzael
Profil
Str4wberry:
je mi to jasný..


Str4wberry:
Ale když to zkouším vtvořit na serveru novou složku mimo složku s názvem domény, tak mi to hlásí chybu. Včera když jsem ji zkoušel vytvořit tak to šlo, ale dneska tam už není..
Str4wberry
Profil
Ono to na každém hostingu nebývá možné. Třeba je to i váš případ.
quatzael
Profil
Str4wberry:
Používám Gigaserver..
Každopádně se by se to mělo dát vyřešit aspoň tím, že ty includovaný soubory udělám s koncovkou .inc, ne??
Spustit asi nepudou, ale číst nějakým způsobem asi jo..
Str4wberry
Profil
Problém je hlavně to čtení, protože se tak dají získat ty citlivé údaje jako přihlášení do DB atd.
DarkKnight
Profil
quatzael:
Pravda už si to uvědomuji správně by to mělo být if($opravneni == 2)


možná by pomohla změna oprávnění v dokumentech
quatzael
Profil
Str4wberry:
Tak teď se mi ta složka zase objevila. Měl jsem připojenýho commandera a tam asi vznikla nějaká chyba, že mi jí nezobrazovalo a nešlo vytvořit novou složku. Zkusil jsem otevřít nový připojení a je to tam!!


Total Commander mi vůbec nějak zlobí, když kopíruju soubory na server (respektive přepisuju ty, který tam už jsou) tak se mi občas stává, že se to přepíše nějak špatně nebo neúplně a script potom nefunguje.. Je zajímavý, že se mi to stávalo prakticky vždycky u souborů s javascriptem. U php ani jednou..
quatzael
Profil
Str4wberry:
Ale jak tam mám na ty soubory hodit cestu?

V Total Commanderu se mi zobrazuje jakoby adresář: 0:/ kde je složka s názvem mojí domény a ještě nějaký logs a tmp.

Proměnná $_SERVER['DOCUMENT_ROOT'] mi vypisuje:
/var/www/web5/nazev-domeny.cz/nazev-domeny.cz

když tam mám tu složku: 0:/inc/ jak se mám k ní dostat?? /var/inc/ nefunguje..
Str4wberry
Profil
Z veřejného adresáře velmi jednoduše:
include "../inc/startovaciSouborAplikace.php";
quatzael
Profil
Str4wberry:
a není nějakej jednodušší způsob jak se tam přímo dostat?? Když budu v nějakých nadřazených složkách tak budu muset mít několikrát ../../../../
Nejde se tomu nějak vyhnout?


Mám namysli nějakej absolutní odkaz..
Str4wberry
Profil
Počkejte, proč několikrát? Soubor, kde bude tohle include, je ten jediný PHP skript ve veřejné složce, který jen načte hlavní skript aplikace (startovaciSouborAplikace.php). Tam už pochopitelně můžete psát normálně include "config.php", pokud je config.php ve složce inc jako startovaciSouborAplikace.php.
quatzael
Profil
Str4wberry:
Myslel jsem několikrát zasebou psát to ../ (nemám to moc hluboce rozvětvený, ale složek je tam už docela dost..
Mám tam už hodně těch souborů include, takže teď to všechno přepisovat bude docela náročný, ale co se dá dělat
Str4wberry
Profil
Myslel jsem několikrát zasebou psát to ../

Ale vždyť to bude jen v tom veřejně přístupném souboru.

/nazev-domeny.cz/index.php

<?php 
// Jediný veřejně přístupný PHP soubor, jen načte aplikaci
include "../inc/startovaciSouborAplikace.php";

/nazev-domeny.cz/css/styl.css

/* veřejně přístupné CSS */

/inc/startovaciSouborAplikace.php

<?php include "funkce/ahoj.php";

/inc/funkce/ahoj.php

<?php echo "Ahoj";

Kde vidíte „několikrát zasebou psát to ../“?
quatzael
Profil
Str4wberry:
Ale mě moje stránka nekončí na hlavní stránce. Mám asi 20 podsložek a v každý zní asi 4 až šest další..
Takže to budu muset přepisovat pro každou zvlášť..

Mám to nějak takhle moje-domena.cz/jedna-z-dvaceti-podslozek/jedna-z-sesti-podpodslozek/index.php
Micruss
Profil
Proč 20 podsložek + Dalších 4 až 6? To máš kvůli hezké URL? na to je .htaccess...
quatzael
Profil
Micruss:
To máš kvůli hezké URL?
Jo, je to lepší pro SEO, ne? Má to svůj důvod, aby to bylo v podsložkách, protože je na tom založené celé menu na hlavní stránce..

.htaccess nepoužívám.. umí to udělat to co potřebuju nějakým lehčím způsobem??
jenikkozak
Profil
quatzael:
umí to udělat to co potřebuju nějakým lehčím způsobem??
Jo.
Za větou se píše jen jedno interpunkční znaménko.
Str4wberry
Profil
.htaccess nepoužívám.. umí to udělat to co potřebuju nějakým lehčím způsobem??

Aha, tak tady je pes zakopán. S použitím .htaccess je možné si ty adresáře jednoduše simulovat.

Jinak jak je tedy nyní aplikace řešena? Soubor moje-domena.cz/jedna-z-dvaceti-podslozek/jedna-z-sesti-podpodslozek/index.php načítá nějaké společné části z ../../neco.php atp.?
« 1 2 »

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

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