Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

  • 37 odgovora
  • 8.894 pregleda

Najnovija ↓

restrikcija pristupa samo na index.html direktno 10.03.2022. u 18:41 · pre 56 meseci #1
Da li može neko da mi pomogne? U php-u sam "početnik" ne baš apsolutni ali realno nisam nešto radio u njemu. Treba mi ideja kako se može izvršiti restrikcija pristupa sajtu, odnosno da jedini url kojem se može pristupiti je npr https://nekiurl/index.html i sve ostalo (šta god da pokušaju direktno spolja da gađaju) da uvek redirektuje na ovaj početni. Naravno ako sa početnog kliknem na link recimo https://nekiurl/about.html da to radi kako treba. Na netu sam našao sve i svašta, ali kod mene jednostavno to ne radi (ili ja ne znam dobro da protumačim šta su napisali).
Bitno je da naglasim da je nginx server upitanju tako da razni .htaccessi otpadaju, a za php znam da može, ali ne znam da pravilno izvedem.
Re: restrikcija pristupa samo na index.html direktno 10.03.2022. u 19:21 · pre 56 meseci #2
Na svakoj stranici stavi:

Code:


if defined('nesto') {

header('Location: http://www.example.com/');

}

A na index.php stavi vrednost za 'nesto'

(define)



Ne sećam se tačno ali u tom smislu. To znači da na index.php definišeš neki parametar. I ako neko kuca neku unutrašnju stranu ta varijabla ne postoji i vraća korisnika na index.php A na index.php definišeš tu varijablu, tj. konstantu i to je to, onda može da se kreće unutar sajta.

Savetujem dalju komunikaciju sa : https://www.php.net/download-docs.php

Uglavnom za redirekciju koristiš 'header' a za definiciju konstanti 'define' i proveru 'defined' - te tri komande proveri.
Re: restrikcija pristupa samo na index.html direktno 10.03.2022. u 22:19 · pre 56 meseci #3
I opet se ništa ne događa...
dakle definisao sam na prvoj strani:
<?php
...
define("nešto","nešto");
?>
i recimo na aboutus.html sam stavio ovako kako si rekao:
<?php
...
if defined("nešto") {

header('Location: index.html');

}
?>

i ništa se ne događa...
Re: restrikcija pristupa samo na index.html direktno 11.03.2022. u 03:23 · pre 56 meseci #5
Citat:
vladared:
I opet se ništa ne događa...
dakle definisao sam na prvoj strani:
<?php
...
define("nešto","nešto");
?>
i recimo na aboutus.html sam stavio ovako kako si rekao:
<?php
...
if defined("nešto") {

header('Location: index.html');

}
?>

i ništa se ne događa...


Da, moja greška. Treba suprotno:


<?php
...
if defined("nešto") {
} else {
header('Location: index.html');
}
?>

Ili probaj umesto 'defined', da staviš '!defined'

-----------------------------

OVAKO:

index.php:
Code:


define('PRISTUP', 'odobren');



ostalo.php
Code:


if (!defined('PRISTUP')) {
    
    header('Location: index.php');
}

Re: restrikcija pristupa samo na index.html direktno 11.03.2022. u 17:40 · pre 56 meseci #7
Ovo nikako ne mozes bezbedno da resis na PHP layeru. To je posao za nginx/apache. Tu onda redirektujes na index.php kao entry point.
Potpis
THE ONLY EASY DAY WAS YESTERDAY
Re: restrikcija pristupa samo na index.html direktno 12.03.2022. u 01:40 · pre 56 meseci #10
Sada ne dozovoljava pristup, ali ni kada kliknem na button na stranici index.php takođe ne pušta... Kada stavim komentar na ubačene redeove kao u ranijem primeru index.php sve radi kako treba, ali može da se pristupa direktno sa linka:
Code:


define('PRISTUP', 'odobren');



ostalo.php
Code:


if (!defined('PRISTUP')) {

header('Location: index.php');
}


Re: restrikcija pristupa samo na index.html direktno 12.03.2022. u 03:19 · pre 56 meseci #11
Bez koda moze samo da se nagadja. I ovo ako nije u edukativne svrhe je totalno losa praksa. Ne resavaj pristup individualnim fajlovima preko php koda. Napravi entry point i odatle proveravaj sta ti treba dalje. Ponavljaces kod u svakom fajlu na serveru i opet nista sem PHP fajlova nece biti zasticeno, poput asseta.
Potpis
THE ONLY EASY DAY WAS YESTERDAY
Re: restrikcija pristupa samo na index.html direktno 12.03.2022. u 19:37 · pre 56 meseci #13
Citat:
vladared:
Da li može neko da mi pomogne? U php-u sam "početnik" ne baš apsolutni ali realno nisam nešto radio u njemu. Treba mi ideja kako se može izvršiti restrikcija pristupa sajtu, odnosno da jedini url kojem se može pristupiti je npr https://nekiurl/index.html i sve ostalo (šta god da pokušaju direktno spolja da gađaju) da uvek redirektuje na ovaj početni. Naravno ako sa početnog kliknem na link recimo https://nekiurl/about.html da to radi kako treba. Na netu sam našao sve i svašta, ali kod mene jednostavno to ne radi (ili ja ne znam dobro da protumačim šta su napisali).
Bitno je da naglasim da je nginx server upitanju tako da razni .htaccessi otpadaju, a za php znam da može, ali ne znam da pravilno izvedem.


Totalno sam sokiran cinjenicom da ovde niko od onih koji su ti odgovorili zapravo nije procitao sta ti zaista hoces (ili jos gore - nije razumeo) i svi pisu nesto a ne znaju ni sami sta pisu. Bez uvrede bilo kome ali ako ne znate kako da covek resi onda nije obavezno da pisete.

1. U svakom slucaju, posto si napisao u php forumu onda pretpostavljam da hoces da resis stvar u php-u. To za pocetak znaci da treba fajlovi da budu .php kako bi web server znao koji interpreter da koristi.

2. Na pocetku svakog fajla treba da proveris referrer vrednost. Ako je referrer neka stranica sa tvog sajta onda dozvolis dalje ucitavanje. Ako nije onda mu posaljes http 302. Obrati paznju da posle 302 hedera ne smes da imas bilo koji drugi output.

I to je sve. Prosto i jednostavno.
Re: restrikcija pristupa samo na index.html direktno 12.03.2022. u 20:00 · pre 56 meseci #14
I napravi security nightmare kad neko edituje source u browseru i doda sebi referera na neki link. Vrlo pametno.

S razlogom sam rekao da ne treba ni diskutovati o PHP resenju ovde, bas jer ovo NIJE ZA PHP. Samim tim je i vezano za PHP jer ce neko nauciti da ne resava taj problem na taj nacin!
Potpis
THE ONLY EASY DAY WAS YESTERDAY
Re: restrikcija pristupa samo na index.html direktno 12.03.2022. u 21:25 · pre 56 meseci #15
Citat:
Zlatni_bg: I napravi security nightmare kad neko edituje source u browseru i doda sebi referera na neki link. Vrlo pametno.

S razlogom sam rekao da ne treba ni diskutovati o PHP resenju ovde, bas jer ovo NIJE ZA PHP. Samim tim je i vezano za PHP jer ce neko nauciti da ne resava taj problem na taj nacin!


Dve stvari.

Prvo: Covek ne zna kako nesto da napravi i pitao je za pomoc. Ne vidim da je bilo gde pisao da ima bilo kakve bezbednosne probleme niti da zeli da ogranicava pristup "fajlovima". Tako da mi je izuzetno fascinantno da ti pricas o resavanju problema a da pokretac teme nije uopste naveo da ima bilo kakav problem (osim problem da ne zna sam kako da uradi to sto hoce). Zasto se na ovom forumu toliko pati da se umesto odgovora na pitanja koja su postavljena uporno daju odgovori na pitanja koja nisu postavljena?

Drugo: Ja sam u svojoj prethodnoj poruci naveo da svi koji ucestvuju na ovoj temi nisu procitali sta je covek napisao ili nisu razumeli sta pita. Ti izgleda spadas u ovu drugu grupu. Covek hoce da natera sve korisnike koji dodju prvi put na njegov sajt da dodju prvo na pocetnu stranicu a posle toga mogu kuda hoce. Stvar je iskljucivo funkcionalno/estetsko/marketinske prirode. Nema govora o bilo kakvoj bezbednosti jer ce svako ionako, nakon sto poseti samo prvu stranu, moci da ide kuda god pozeli. I to sto ce mozda neko u svom browseru da lazira referrer.... mislis da je neko toliko dokon da se time bavi a sve da bi direktno posetio "about" stranu?

Mislim da je ovde najvaznije parce koda za sve vas koji po svaku cenu morate da ucestvujete u temi:

Code:
$sujeta = false;
Re: restrikcija pristupa samo na index.html direktno 13.03.2022. u 01:23 · pre 56 meseci #16
U pravu si. Nisam video drugi deo jer sam previse bio fokusiran na prvi - da neko preko PHP-a pokusava da zakljuca pristup fajlovima na httpdu.

Ipak bih ostao pri inicijalnoj ideji da radi neki "bootstrapping" od samog starta - sto pre nauci da koristi entry point u phpu, bolje po njega, vise vremena ce ustedeti. Znam, poceci... zeznuto je razmisljanje na takav nacin, ali sto pre se razvije - to bolje, kvalitetniji kod bude nego kad ima 80 .php fajlova u root diru da vise ne znas gde je sta. Znaci da ima neki basic router u index.php. Moj savet svima koji pocinju sa PHP-om i poznaju elementarne stvari u programiranju. Zasto? Imas vecu kontrolu nad celim sistemom, i app-wide ce ti raditi sve ono sto bi morao da guras u svaku skriptu.

I da, ovde je najbrze i najefikasnije resenje koriscenje $_SERVER promenljive. Napravio bih check gde ukoliko postoji referrer, loaduje index.php. Ukoliko ne postoji, znaci da ide sa originalne stranice (koliko se secam, moze da dampuje $_SERVER i proveri). Potom bih require_once-ovao taj fajl pri pocetku svake stranice.

Code:

// start stvakog PHP fajla sem indexa:

if ($_SERVER['HTTP_REFERER'])
 {
    require_once("index.php");
    exit();
 }


A sto se tice setovanja headera, moze i to:

Code:
header('Location: /index.php');
Potpis
THE ONLY EASY DAY WAS YESTERDAY
Re: restrikcija pristupa samo na index.html direktno 13.03.2022. u 17:37 · pre 56 meseci #17
Citat:
Zlatni_bg: U pravu si. Nisam video drugi deo jer sam previse bio fokusiran na prvi - da neko preko PHP-a pokusava da zakljuca pristup fajlovima na httpdu.

Ipak bih ostao pri inicijalnoj ideji da radi neki "bootstrapping" od samog starta - sto pre nauci da koristi entry point u phpu, bolje po njega, vise vremena ce ustedeti. Znam, poceci... zeznuto je razmisljanje na takav nacin, ali sto pre se razvije - to bolje, kvalitetniji kod bude nego kad ima 80 .php fajlova u root diru da vise ne znas gde je sta. Znaci da ima neki basic router u index.php. Moj savet svima koji pocinju sa PHP-om i poznaju elementarne stvari u programiranju. Zasto? Imas vecu kontrolu nad celim sistemom, i app-wide ce ti raditi sve ono sto bi morao da guras u svaku skriptu.

I da, ovde je najbrze i najefikasnije resenje koriscenje $_SERVER promenljive. Napravio bih check gde ukoliko postoji referrer, loaduje index.php. Ukoliko ne postoji, znaci da ide sa originalne stranice (koliko se secam, moze da dampuje $_SERVER i proveri). Potom bih require_once-ovao taj fajl pri pocetku svake stranice.

Code:

// start stvakog PHP fajla sem indexa:

if ($_SERVER['HTTP_REFERER'])
 {
    require_once("index.php");
    exit();
 }


A sto se tice setovanja headera, moze i to:

Code:
header('Location: /index.php');


Ovo je ok ideja, kao i sve što je rečeno. Interesuje me ako bi ovako definisao da li bi to prošlo ili je ovo višak?

Code:

if ($_SERVER['HTTP_REFERER'] =="https://nekiurl.com/index.php")
 {
    require_once("index.php");
    exit();
 }
else{
header('Location: /index.php');
 }



Re: restrikcija pristupa samo na index.html direktno 13.03.2022. u 23:07 · pre 56 meseci #18
Citat:
vladared: Ovo je ok ideja, kao i sve što je rečeno. Interesuje me ako bi ovako definisao da li bi to prošlo ili je ovo višak?

Code:

if ($_SERVER['HTTP_REFERER'] =="https://nekiurl.com/index.php")
 {
    require_once("index.php");
    exit();
 }
else{
header('Location: /index.php');
 }



Deluje mi kao da preskaces neke stvari koje smo ti rekli. Moras da obratis paznju na svaki detalj koji ti govorimo i sto je jos mnogo vaznije da razumes sve sto ti govorimo. Ne mozes samo da kopiras kod koji ti neko napise i da se nadas da ce da radi.

Znaci, ovde kod kaze sledece: "Ako je dosao sa index.php onda mu prikazi index.php". To ne zvuci bas logicno, zar ne? Prepisivanje koda ne ide. Moras da razumes program koji pises da bi na kraju radilo sve kako treba.

Dalje, ako mu uradis require onda browser i posetioca dovodis u zabludu. On ce da bude npr. na stranici about.php a ti uradis require pa mu prikazes sadrzaj sa index.php. Koliko sam ja razumeo inicijalnu poruku koju si napisao ti zelis da uradi redirekciju a to radis samo ako klijentu posaljes odgovarajuci header (u tvom slucaju http 302).
Re: restrikcija pristupa samo na index.html direktno 13.03.2022. u 23:36 · pre 56 meseci #19
Iako business requirements liči na jedan od "Srbin 3aje8'o Google", iz svega što sam od OP-a pročit'o izvlačim zaključak
da je rješenje sa postavljanjem cookie-ja. Naravno uz dalje obavještenje vizitora kako će mu podaci biti sačuvani i u koje svrhe.

1. (Na bilo kojoj strani koja nije home page) Ako nije postavljen cookie, redirekt na home page
2. Na home page-u postavi cookie ako nije postavljen

I to je to. Cijenim da može i sa session al' eto k'o još jedna babica predlažem cookie. Suštinski se slažem i sa ovim što Dr. 'Lad piše.
Potpis
-A Tpojke su Đuro - šta?
-Osnovne jedinice diverzantskih grupa!
Re: restrikcija pristupa samo na index.html direktno 14.03.2022. u 00:16 · pre 56 meseci #20
Citat:
Tpojka: 1. (Na bilo kojoj strani koja nije home page) Ako nije postavljen cookie, redirekt na home page


Vidim da ce ovo da radi prvi put. A kako ces da obezbedis da radi i, na primer, sledeceg dana kada se browser ponovo pojavi na non-index strani a ima cookie koji je snimio prethodnog dana?
Odgovori
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme