Accesare site pe baza hash sau cookie only? Alternativa http basic auth (apache2)

daqogem

Active Member
Registered
Full Member
Salutare!

Am si eu o nelamurire si voiam o sugestie/lamurire de la voi:

Context:
1. Am de creat in jur de 20+ site-uri hostate pe un remote server dedicat (ubuntu 22.10 + PHP 8.1 + apache2).
2. Aceste siteuri imi vor servi in scopul testarii de plugini WordPress (practic o intrega flota/infrastructura permanenta de testare in care sa-mi setez niste environmenturi de test - etc)
3. pluginii pe care ii voi testa sunt plugini care ofera recaptcha / 2FA etc - in general securitate - deci trebuie tinut cont ca structura URLului sa nu se schimbe (astfel incat cheile recapthca de la google sa funcitoneze mereu cand testez captcha), si cronurile pt 2FA etc.. (am detaliat deja mai sus asta)

Nevoile mele si ce am documentat pana acum si ce variante NU as vrea sa le folosesc:
1. Trebuie sa le protejam (un nivel minim , decent de securitate - nu suntem NASA) , astfel incat sa nu fie accesate din exterior - dar nu cu basic http authentication (asta face ca cron joburile sa nu functioneze in parametrii ok, si am decis sa nu folosim asta)
2. VPN - e putin cam complicat si overkill in situatia noastra si de asemenea am decis ca am vrea sa evitam (la fel si configurarea direct din apache2 pt access al unor IPuri - avand in vedere ca toti avem IP dinamic, ar fi o munca aiurea in fiecare zi sa editez acea lista de IPuri din conf etc..)

Variante gasite pt care as vrea ajutor sau sugestia voastra in a le implementa:
1. Am gasit recent o "potentiala solutie" prin utilizarea de hash based authentification - practic, creez un "hash" de 60 caractere si il plasez undeva in configuratia apache2 sau cand declar virtual hostul (cred), si

Astfel www.domain.com nu va putea fi accesat, doar daca accesez direct cu hash-ul acela in URL - www.domain.com/aisdo9as98jasj129ejnwduwqdal;sacaoi

Aveti idee cum as putea implementa asa ceva? pas cu pas.. sau unde ar trebui adaugat acel hash precis? si care ar fi pasii de urmat in comenzi bash? (sau orice articole ajutatoare - nu prea stiu cum sa caut precis aceasta metoda, si nu stiu cat de eficienta ar fi, ma bazez pe voi pt detalii).

2. Ar mai fi o varianta asemenatoare - daca un user are un cookie al unui site salvat in browser, va putea accesa URL-ul - deci cookie based autentication practic - dar si aici nu prea stiu cum as putea implementa asta, si daca e o varianta mai buna, sau mai usor de implementat decat cea de sus. Astept si aici ajutor


Orice alta varianta, sau ajutor sunt foarte apreciate, si va multumesc de pe acum in avans pt timpul acordat!
 
Pare că dorești să implementezi o autentificare bazată pe hash-uri în configurația Apache2, astfel încât un site web să poată fi accesat numai prin includerea unui hash specific în URL. Cu toate acestea, trebuie să menționez că această metodă nu oferă o securitate puternică și nu este recomandată pentru autentificarea utilizatorilor în mod normal. Hash-urile nu sunt menite să fie utilizate ca mecanisme de autentificare, deoarece pot fi expuse și compromise în diverse moduri.

Totuși, dacă dorești să testezi sau să experimentezi această funcționalitate în mediu de dezvoltare, poți urma următoarele pași:

  1. Deschideți fișierul de configurare Apache2 asociat domeniului (httpd.conf, apache2.conf, 000-default.conf, etc.) pentru a adăuga directiva necesară. În acest exemplu, vom presupune că fișierul de configurare este 000-default.conf.
  2. Găsiți secțiunea care definește virtual host-ul asociat domeniului www.domain.com. Acolo ar trebui să fie o linie care începe cu <VirtualHost *:80> sau <VirtualHost *:443>, în funcție de configurarea ta.
  3. În interiorul blocului <VirtualHost>, adăugați următoarea linie pentru a permite accesul numai prin includerea hash-ului în URL:

    Apache config:
    RewriteEngine On
    RewriteCond %{REQUEST_URI} !^/aisdo9as98jasj129ejnwduwqdal;sacaoi$
    RewriteRule ^ - [F]
    Aceste linii de cod activează modul de rescriere a URL-urilor (RewriteEngine On). Apoi, verifică dacă cererea URI (%{REQUEST_URI}) nu începe cu hash-ul specificat (^/aisdo9as98jasj129ejnwduwqdal;sacaoi$). Dacă nu corespunde, cererea este respinsă cu codul de stare 403 ([F]).
  4. Salvați fișierul de configurare și reporniți serverul Apache2 pentru ca modificările să fie aplicate.
 
@showb1z Iti multumesc pentru raspuns si pentru detalii! Voi incerca cu siguranta metoda ta!
O intrebare rapida : eu folosesc aceasta metoda pentru a bloca (fara VPN, cloudflare sau alte complicatii), accesul la niste staging/testing websites , acest mod de hashing in URL crezi ca ma va ajuta ca site-ul sa nu fie indexat/gasit de google etc?

Sau stii o metoda ca sa previna treaba asta (din interior, nu decat prin acel setting din WP care forteaza dezindexarea automat)., care sa nu-mi compromita cron joburile sa ruleze natural pe server/site-uri si sa pot testa eficient ?

Si inca o intrebare adiacenta: dupa ce voi folosi prima data acel hash in URL sa pot accesa site-ul, va trebui ca mereu cand intru in /wp-admin sau in anumite pagini sa pastrez acel hash etc? Imi va afecta teoretic in vreun fel flow-ul in testare?
De ex: la acest hash voi avea access eu si developerul - daca am gasit un bug in /wp-admin/settings-2FA (de exemplu) , toate URLurile date mai departe vor trebui sa fie de forma /wp-admin/settings-2fa#ajdosmiIO(SDo123oj213! ?


Intreb asta pt ca voi testa si CAPTCHA iar acele chei de la google trebuie sa respecte un URL fix etc..




Merci anticipat..
 
Ultima editare:
  1. Utilizarea unui fișier robots.txt: Creează și plasează un fișier robots.txt în rădăcina site-ului tău de testare. În acest fișier, poți indica motoarelor de căutare să nu indexeze site-ul. Deși acest fișier nu oferă o protecție absolută, majoritatea motoarelor de căutare respectă instrucțiunile din robots.txt.
  2. Utilizarea autentificării de bază HTTP: Activează autentificarea de bază HTTP în configurația Apache2 pentru site-urile de testare. Aceasta necesită ca utilizatorii să furnizeze un nume de utilizator și o parolă pentru a accesa site-ul.
 
Cel mai simplu ar fii sa faci instate Docker care le activezi pentru 24h si un utilizator are access catre aisdo9as98jasj129ejnwduwqda.domain.com pentru perioada respectiva. Pe un server decent poti avea destul de multe instante.

Singurul lucru ce va fii un pic greu, e sa nu uiti ca dupa 24h instantele respective sa se autodistruga si nu iti ocupe spatiu.

Pentru docker ai nevoie de un "container" Docker care ii gata facut si mentinut de Wordpress, tu trebuie doar sa faci "install" cand un utilizator vrea sa testeze ceva.
 
Cei de la online.net oferaa fiecare server private network, asta înseamnă ca serverele pot comunica intre ele la ce vrei tu fara sa poata fi accesate din exterior. Este mult mai sigură cred eu.
O alta soluție este sa dai "paste" la textul de aici asa cum este pe chatgbt.

Iti va oferi soluții și de acolo poti continua pana iti oferă exact ceea ce vrei.

Daca folosești cloudflare din cate stiu se poate realiza asta direct de acolo insa cred ca trebuie sa plătești.
 
Pare că dorești să implementezi o autentificare bazată pe hash-uri în configurația Apache2, astfel încât un site web să poată fi accesat numai prin includerea unui hash specific în URL. Cu toate acestea, trebuie să menționez că această metodă nu oferă o securitate puternică și nu este recomandată pentru autentificarea utilizatorilor în mod normal. Hash-urile nu sunt menite să fie utilizate ca mecanisme de autentificare, deoarece pot fi expuse și compromise în diverse moduri.

Totuși, dacă dorești să testezi sau să experimentezi această funcționalitate în mediu de dezvoltare, poți urma următoarele pași:

  1. Deschideți fișierul de configurare Apache2 asociat domeniului (httpd.conf, apache2.conf, 000-default.conf, etc.) pentru a adăuga directiva necesară. În acest exemplu, vom presupune că fișierul de configurare este 000-default.conf.
  2. Găsiți secțiunea care definește virtual host-ul asociat domeniului www.domain.com. Acolo ar trebui să fie o linie care începe cu <VirtualHost *:80> sau <VirtualHost *:443>, în funcție de configurarea ta.
  3. În interiorul blocului <VirtualHost>, adăugați următoarea linie pentru a permite accesul numai prin includerea hash-ului în URL:

    Apache config:
    RewriteEngine On
    RewriteCond %{REQUEST_URI} !^/aisdo9as98jasj129ejnwduwqdal;sacaoi$
    RewriteRule ^ - [F]
    Aceste linii de cod activează modul de rescriere a URL-urilor (RewriteEngine On). Apoi, verifică dacă cererea URI (%{REQUEST_URI}) nu începe cu hash-ul specificat (^/aisdo9as98jasj129ejnwduwqdal;sacaoi$). Dacă nu corespunde, cererea este respinsă cu codul de stare 403 ([F]).
  4. Salvați fișierul de configurare și reporniți serverul Apache2 pentru ca modificările să fie aplicate.
Don GPT
 
Loading...
Back
Sus