Php e modifica utenti

Problema,
abbiamo alcune piccole applicazioni in php articolate in un menù html che danno accesso a varie funzioni (ognuna è una pagina php differente).

Come posso fare per far si che alcuni vedano qualche opzione ed altri solo altre ?

Vorrei evitare l’inserimento di utenti e password.
Non posso utilizzare l’ip perché siamo nattati ed abbiamo tutti lo stesso ip.
Non posso usare il nome macchina perché un collega potrebbe spostarsi su varie pc.

Qualche suggerimento ?

Come vuoi identificare un utente piuttosto che un altro? Senza utente e pass, senza nome macchina, senza IP…

Fanno il login? Quindi hanno un utente?

Dipende un po’ da come hai impostato le pagine, ma se crei dei gruppi con permessi diversi?

e non so proprio … se non puoi usare niente che identifica l’utente risulta difficile … se non impossibile, ma dire impossibile non mi azzardo :stuck_out_tongue:

cioe’ puoi fare con variabili $_GET], ma non e’ il massimo della sicurezza ovviamente…

http://example.com/index.php?mod=1
http://example.com/index.php?mod=2
http://example.com/index.php?mod=3

…ma ripeto non e’ perniente sicuro ovviamente!

In pratica stai chiedendo che un utente si siede al PC e il server capisca chi si è seduto. Soluzioni che non prevedano username e password ma che permettano di gestire permessi con criterio sono: sistemi biometrici (impronte digitali, retina …) o smartcard.

Provo a sparare una soluzione simil smartcard meno costosa e meno seria, ma può funzionare. Chiavette usb personali con dentro un file identificativo.

Caso d’uso:
prerequisiti: le chiavette e i sistemi devono essere configurati di modo che vengano montati sempre nello stesso punto, magari protette in scrittura.

  • arrivo ad un qualsiasi PC ed inserisco la mia chiavetta
  • questa viene montata /mnt/usbidentificator/
  • accedo con il browser ad una pagina che legge un file sempre alla posizione /mnt/usbidentificator/id (id è il file)
  • il server riceve il file id e identifica l’utente e reagisce di conseguenza

Nota: due chiavette così configurate dovrebbero andare in conflitto se inserite nello stesso PC

e’ cosi orribile fare un login?.. male che vada puoi farlo con .htaccess e .htpasswd

Questa soluzione è già applicata per i lettori che si autentificano ai pc con la tessera ma non è adatta a questo tipo di soluzione.

[quote=Tex_Willer]
e’ cosi orribile fare un login?.. male che vada puoi farlo con .htaccess e .htpasswd[/quote]

Ovviamente no ma cercavo qualcosa di più elegante. Anche perché il collega al massimo si sposta di PC nel proprio ufficio non certo in giri per l’istituto.

Ma, un’idea che mi era venuta in mente, un piccolo file txt che la procedura legge e che gli fa capire che quel pc DEVE far vedere quelle scelte e non quelle altre ?

Sarebbe fattibile in maniera semplice ed elegante ?

Si tratta di eseguire una “autenticazione” in automatico al tuo sistema web.

Forse creando una nuova interfaccia di comunicazione tra client e server web…magari un client VPN che crea una determinata connessione, il php dall’altra parte interroga le connessioni stabilite e da dove sono state fatte, da qui carichi le varie impostazioni.
Una cosa simile a quello che ha detto robyduck.

[quote=MarioS]
Si tratta di eseguire una “autenticazione” in automatico al tuo sistema web.

Forse creando una nuova interfaccia di comunicazione tra client e server web…magari un client VPN che crea una determinata connessione, il php dall’altra parte interroga le connessioni stabilite e da dove sono state fatte, da qui carichi le varie impostazioni.
Una cosa simile a quello che ha detto robyduck.[/quote]

Mi sembra tutto troppo complicato.

Sto provando a risolvere la cosa con i cookies ma trovo una difficoltà.

Ma come si imposta il parametro “Non scadere mai” ?
Mettendo 0 nel parametro time ?

[quote=bncrm]

Questa soluzione è già applicata per i lettori che si autentificano ai pc con la tessera ma non è adatta a questo tipo di soluzione.[/quote]

Se è già applicata perché non è estendibile? Se già usate quello per riconoscere gli utenti, poco importa che siano lettori o amministrazione, sarà il server a capire chi può fare cosa e dove.

Che è praticamente identico a quello che ti ho suggerito, solo che il file sta su una chiavetta, così segue l’utente (requisito del sistema).

Questioni economiche ? :ooops:

E comunque l’autentificazione e la getione è fatta da un software particolare e non è autogestito.

Studio la tua possibile soluzione, ho il problema che non riesco a far leggere a php un file al di fuori della directory html … ovvero in locale (chiavetta o c:\ che sia).

La soluzione migliore, secondo me, è usare username e password è anche molto più sicura (come suggerivano prima, fatto con .htaccess è molto più rapido da fare). Se vuoi tentare con la soluzione chiavetta:
nella pagina php in questione puoi nascondere un form con il campo di input da file che è preimpostato ad un percorso noto (il file sulla chiavetta, e deve essere uguale per tutte le chiavette) con un tempo di refresh di qualche secondo. In questo modo, a chiavetta inserita, quando un utente va su quella pagina nel momento del refresh il file viene inviato al server. Ovviamente dovrai prevedere dei controlli dopo per evitare che faccia sempre il refresh, ma che lo faccia solo quando è opportuno farlo (controlli le sessioni, imposti dei timeout, …)

Ma la studio un attimo poi se ci cavo qualcosa vi faccio sapere.

Grazie

E’ tutto da vedere, non ho studiato a fondo questa cosa…
Forse Kerberos può aiutare?
http://ebook.sikurezza.org/wiki/Autenticazione_web_con_Kerberos

scusate se mi intrometto ,
ma con i cookie non leghi il login direttamente al browser?..
e se leghi il login direttamente al browser, non c’è un serio pericolo che un’latra persona usi il browser con il cookie e possa accedere ai dati ?..(sopratutto se non gli dai una scadenza…)

in questo momento però mi vengono in mente solo tre soluzioni se ti possono essere di qualche aiuto te le elenco:

1)Dai una scadenza al cookie che ti serva solo per il “login invisibile” e una volta effettuato l’accesso dai fruibilità ai contenuti senza richiedere il controllo del coockie, ma questo implica un’ altro serio problema di sicurezza analogo al precedente (nel caso che l’utente lasci aperto il browser sulla pagina dei contenuti “protetti” qualunque utente ne avrebbe un accesso diretto)

2)Leghi il login alla persona fisica oppure ad un suo oggetto personale:
potresti implementare realmente un lettore di smartcard oppure usare un semplice software di riconoscimento facciale installando delle webcam per ogni computer poi con un programmino in esegui il riconoscimento dell’utente a cui dai un id univoco e interrghi il DB sul server, una volta effettuato il riconoscimento fai la richiesta http alla pagina voluta con il browser…
Oppure lo leghi ad un software che gli fai installare sul cellulare…ma questo implica che il cellulare dell’utente debba essere solo usato dall’utente e sopratutto che alla fine il login sarebbe la scocciatura minore (prendi cellulare–> attiva il programma–>aspetta autenticazione–>accedi alle risorse )

3)la terza soluzione forse la più banale ma che io ci farei un pensierino è usare openid…che ormai è uno standard nell’autenticazione…quindi non corri neanche il richio che debbano farsi l’account…chi è che non ha un accont google, yahoo o facebook (per citare solo i più famosi) al giorno d’oggi?..

In realtà no per come è strutturato l’ufficio.

O meglio: ovviamente questa possibilità esiste ma molto remota e quindi sostanzialmente non “pesabile”.

Trattasi di dati non riservati su cui lavorano più persone (libri mancanti ad un controllo) in cui nessuno ha interesse (e voglia) a mettere mano.