• User

    Protezione file lato client

    Salve, in tanto mi scuso se questa non è la sezione giusta, ma credo che il mio problema si collochi "a cavallo" tra la programmazione lato client e quella server.

    Al momento ho fatto una pagine html che contiene uno script che esegue alcuni funzioni utlizzando il linguaggio AJAX. Dato che l'unico modo per farlo andare è scaricarlo ed eseguirlo in locale, vorrei sapere se è possibile implementare un qualche tipo di controllo, in modo tale da limitare gli accessi.

    In questo momento, le informazioni necessarie per lo script sono contenute in un file .js che è caricato sul mio sito.
    E' possibile limitare l'accesso a questo file solo a determinati utenti, aggiungendo del codice nel file html in modo tale che mandi l'username dell'utilizzatore al mio server e io conceda l'accesso al file .js
    solamente a quelli autorizzati?

    I passaggi che avrei in mente io sono questi:

    1. registrazione dell'utente
    2. scaricamento del file (generato al volo, quindi posso scrivere l'username da qualche parte)
    3. esecuzione in locale del file (con relativa verifica)

    Quello che vorrei evitare è il proliferare di esecuzioni "non permesse" da parte di utenti non registrati.
    Lo so che è una protezione un po' debole, ma sempre meglio di niente...

    Spero di essermi spiegato..
    Grazie a tutti in anticipo


  • User Attivo

    Scusa ma... ajax è un linguaggio che spiega le sue funzionalità lato server evitando appunto una comunicazione tra l'utente e il server ma silenziosamente tra una pagina e un'altra pagina che esegue il "lavoro" della prima... quindi non capisco cosa intendi per "funziona solo se scaricato in locale"

    In secondo luogo i file .js sono testo quindi se uno scrive nella barra l'url del file lo visualizza senza problemi... se lo metti in un'area protetta quando l'utente apre il file .htm o .php che richiama il file .js questo ovviamente non viene incluso...

    Infine il problema è il contrario, che nessuno dovrebbe "fidarsi" a scaricare qualcosa che deve girare in locale per fare qualcosa... abbiamo atteso anni un browser come firefox che non ha bisogno (e anzi blocca) gli activeX e adesso scarichiamo roba da far girare in locale per vedere un sito?

    Spiega meglio cosa vuoi fare che di sicuro si fa senza quei punti che hai indicato tu...

    keiske


  • Bannato User Attivo

    se ti serve che un js sia usato solo da chi è registrato puoi:

    1. includerlo in pagina con un controllo lato server, quindi se l'utente è registrato/loggato includerai il codice:
      **<script src="/js/scriptxregistrati.js"></script>
      **l'unica falla di questo metodo è che chiunque conosce l'url del js può scaricarlo e usarlo.

    2)puoi includere sempre il js a questo modo:
    <script src="/js/scriptxregistrati.js.php"></script>
    nel file php a questo punto controlli se l'utente è loggato, se è loggato generi il js al volo altrimenti gli restituisci un file vuoto.
    Questo è un gradino più sicuro del 1° metodo ma NON è sicuro: se io sono loggato posso avere il file js e passarlo a chi voglio.

    1. fai come al punto 2, e in più tutte le chiamate Ajax* saranno controllate lato server per verificare che il chiamante sia loggato.

    *Qui si ha un concetto di ajax distorto.


  • User Attivo

    In quel .js ci dev'essere scritto chi ha ucciso Kennedy 😄

    keiske


  • User

    scusate, ma ho fatto un bel po' di confusione e alla fine non ho detto nulla.
    allora, la situazione è questa.
    un mio amico mi ha fatto una pagina html e un file js in modo tale che io possa visitare in automatico alcuni siti che imposto io, eseguendo il tutto in locale.
    le istruzioni ajax sono contenute nel file .js , mentre i siti da visitare nel file html.
    io volevo mettere on-line la pagina, ma:
    ho provato a metterla in linea in maniera brutale, caricandola direttamente sul mio sito ma al momento dell'esecuzione ricevevo il l'errore "Autorizzazione negata". (mi hanno spiegato che è un problema di cross domain. bon, io mi fido perchè non ne so nulla).

    per ovviare a questo problema mi hanno detto che la soluzione più semplice è quella di creare una pagina php che ci pensa lei ad effettuare la chiamata (anche qua copio&incollo quello che mi hanno detto).

    ma questo genera altri due problemi:

    1. non ho la più pallida idea di come potrei fare
    2. al dominio esterno apparirebbe l'ip del mio sito che effettua la richiesta tramite la suddetta pagina php, mentre invece io ho la necessità che il dominio esterno veda l'ip di ogni singolo utente.

    detto questo, con le informazioni in mio possesso, la via più semplice mi è sembrata quella di mantenere l'esecuzione in locale invece di spostarla sul server e cercare di limitare l'accesso al file .js ai soli utenti registrati.

    e qua torno al mio primo post: come potrei fare?
    saro78 mi ha dato un po' di soluzioni e lo ringrazio molto, ma non ho capito molto il terzo punto (d'altronde di ajax conosco solamente qualcosa in generale)

    spero che adesso la situazione sia un filino più chiara.
    un grazie a tutti per avermi risposto così alla svelta.


  • User Attivo

    "un mio amico mi ha fatto una pagina html e un file js in modo tale che io possa visitare in automatico alcuni siti che imposto io, eseguendo il tutto in locale."

    Partiamo dalla funzione del tutto... cosa vuol dire che visiti in automatico siti che imposti tu? spiega meglio il funzionamento, perchè non ne capisco l'utilità...

    keiske


  • User

    allora fisicamente le cose stanno così:
    il file html (chiamiamolo pippo.htm) contiene questo codice:

    
    <html>
    <head>
        <script type="text/javascript" src="funzioni.js"></script>
        <script type="text/javascript">
        
        var clicker=new Clicker();clicker.username='tampe125';clicker.links=new Array('link1','link2','link3');
    
    </script>  
    </head>
    
    <body>
        
        <script type="text/javascript">
    
            clicker.init();
            clicker.click();
    
        </script>
    </body>
    </html>
    
    
    

    l'utilità è presto detta (ed è alquanto futile): ora come ora gioco ad un gioco on-line, dove per "reclutare" un maggior numero di soldati puoi cliccare su una serie di link. Ebbene questi due file sono utili per visitare automaticamente diverse pagine.

    Spero di essere stato chiaro...


  • User Attivo

    Chiarissimo, ma non pensi mica che abbia senso metterlo in rete per provare a "diffonderlo" in giro? E' utile per te, se funziona passalo agli amici e basta... diciamo che coinvolge qualche aspetto di sicurezza del pc... non so cosa c'è in funzioni.js ma di sicuro roba che girata diversamente può far danni...

    keiske


  • User

    in che senso "girata diversamente può far danni"?
    e poi mi si presenterebbe il solito problema: anche se distribuisco tramite mail i file, poi dopo ne perdo il controllo.
    l'unica cosa che chiedevo è se era possibile creare un qualche tipo di controllo..


  • User Attivo

    che con un file .js scaricato e girato in locale tecnicamente ti posso formattare il pc con un click... e quindi la gente sarebbe molto restia a scaricare direttamente dal sito un .js
    Non capisco che "controllo" vuoi tenere... passi i file agli amici e si arrangiano a farlo andare 😄

    keiske


  • User

    rileggendo quello che ho scritto fin'ora mi rendo conto di aver creato una bella confusione (scusate, ma d'altronde sto parlando di cose che conosco molto poco).

    quello che deve essere scaricato ed eseguito in locale è il file html (che contiene lo script di cui sopra), mentre il file .js può essere caricato su qualsiasi sito.
    quindi con una sintassi del genere:

    
    <script type="text/javascript" src="miosito.it/funzioni.js"></script>
    
    

    tutto quanto funzionerà perfettamente. (non chiedetemi come mai, ma questo è quello che ho potuto osservare).
    per questo chiedevo come posso proteggere il file, d'altronde si troverà sempre e comunque in remoto e non dovrà mai essere toccato...

    scusatemi ancora per il gran guazzabuglio che ho creato e ringrazio già da ora tutte le persone che hanno perso del tempo per starmi dietro.


  • User Attivo

    Allora è semplice...

    metti il file "html" dentro un .rar e poi lo salvi in una cartella protetta... poi il link per scaricare il file lo metti in una pagina .php protetta da login... con la pagina .php nella cartella protetta...

    keiske


  • User

    e infatti a questa cosa ci avevo già un po' pensato..
    quello che mi chiedevo io: è possibile in qualche modo "schermare" il file js che è presente sul server? magari con qualche controllo lato server?
    perchè in fin dei conti è quello che contiene le informazioni importanti..

    ah, anche se sembra scontato:
    scusa se ti faccio perdere un sacco di tempo e praticamente ti ho rintronato con tutte le mie domande :ciauz:


  • User Attivo

    **Ciao ****tampe125, e benvenuto sul ForumGT

    **Credo troverai migliori risultati nella sezione PHP - MySQL