Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 16
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2016
    Messaggi
    245

    [PHP] protezione sorgenti e gestione licenze

    Buongiorno,
    grazie al Vostro aiuto sono arrivato al capolinea.
    Ho finito il progetto e ora lo consegno/commercializzo.
    Però, mi imbatto in alcuni problemi.

    1) come posso proteggere i sorgenti per evitare la duplicazione?
    2) Ho pensato ad una gestione delle licenze per vendere il prodotto e inserirlo nei plugin di WP, ma come funziona la gestione licenze?
    Banalmente pensavo di, in fase di installazione, farmi mandare i dati dell'acquirente, inserirli in nu mio db con il num licenza/scadenza, inviare la licenza ed effettuare un controllo (come?) della validità della licenza ogni volta che il sw viene utilizzato.

    Non so come partire, per risolvere queste due cosette.

    Qualcuno mi può indirizzare?

    Grazie, come al solito!

  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,445
    1) non puoi, specie se parli di plugin di WP o altri CMS visto che non puoi offuscare il codice

    2) metti nel plugin del codice che una volta eseguito invii una richiesta col seriale ad un tuo server su cui si trova il DB con i clienti, lì verifichi che il seriale sia valido e rispondi alla chiamata, se rispondi in modo positivo, il plugin va avanti, in caso contrario mostra un errore.
    Il problema è che uno appena smaliziato smanetta un po', trova il tuo codice per il controllo e nell'if ci mette true invece del risultato della chiamata o proprio lo rimuove, così da avere sempre eseguito il ramo che manda avanti il funzionamento del plugin.

    Dalla tua parte c'è il fatto che rilasciando aggiornamenti, il codice modificato dall'utente viene sovrascritto riportando il tuo codice con il controllo valido, ma l'utente può ora ripetere la modifica e farlo tornare a funzionare.
    Per scoraggiare le modifiche potresti rendere un po' complesso il controllo, per esempio rimbalzando i passaggi di tale procedura in più parti del codice, magari anche in file diversi e cambiandoli da un aggiornamento all'altro, in modo da rendere rognoso modificare ogni volta.

  3. #3
    Utente di HTML.it
    Registrato dal
    Jul 2016
    Messaggi
    245
    OK grazie. sempre molto gentili.

  4. #4
    Utente di HTML.it
    Registrato dal
    Jul 2016
    Messaggi
    245
    Quote Originariamente inviata da Alhazred Visualizza il messaggio
    1) non puoi, specie se parli di plugin di WP o altri CMS visto che non puoi offuscare il codice

    2) metti nel plugin del codice che una volta eseguito invii una richiesta col seriale ad un tuo server su cui si trova il DB con i clienti, lì verifichi che il seriale sia valido e rispondi alla chiamata, se rispondi in modo positivo, il plugin va avanti, in caso contrario mostra un errore.
    Il problema è che uno appena smaliziato smanetta un po', trova il tuo codice per il controllo e nell'if ci mette true invece del risultato della chiamata o proprio lo rimuove, così da avere sempre eseguito il ramo che manda avanti il funzionamento del plugin.

    Dalla tua parte c'è il fatto che rilasciando aggiornamenti, il codice modificato dall'utente viene sovrascritto riportando il tuo codice con il controllo valido, ma l'utente può ora ripetere la modifica e farlo tornare a funzionare.
    Per scoraggiare le modifiche potresti rendere un po' complesso il controllo, per esempio rimbalzando i passaggi di tale procedura in più parti del codice, magari anche in file diversi e cambiandoli da un aggiornamento all'altro, in modo da rendere rognoso modificare ogni volta.
    Ciao,
    ho creato un DB con le licenze.
    ho creato un php che riceve 2 dati : azienda e licenza.
    Ma, casca l'asino, come chiamo questo PHP (sei chiama chk_lic.php) da, ad esempio login.php dell'applicazione e come leggo la risposta.
    Ho un po di difficoltà in queste chiamate, sotterranee che poi ricevono risposte....
    spero di esser stato chiaro.
    Grazie

  5. #5
    Utente di HTML.it L'avatar di clasku
    Registrato dal
    Aug 2006
    Messaggi
    3,197
    sarebbe da capire come è fatto il codice, ma se instanzi, ad esempio, una classe primaria assolutamente necessaria al funzionamento della tua applicazione, nel costruttore puoi mettere un richiamo ad una funzione/classe e invii i dati al tuo server.
    in risposta tu gli dai un ok o un ko (magari cifrato in qualche maniera che solo tu conosci)
    ti dico però che il primo smaliziato che trovi modificherà il codice rendendo vani i tuoi sforzi e non ci metterà molto a capire come evitare la chiamata o a gesture la risposta negativa

  6. #6
    Utente di HTML.it
    Registrato dal
    Jul 2016
    Messaggi
    245
    Ti ringrazio per la disponibilità, ma :
    - non cosa sia una classe primaria
    - quando dici 'risposta', tecnicamente come la do?

    maggiori info : l'applicazione risiede su www.azienda.eu ; il mio file è nel sito www.miosito.eu.
    a) come richiamo il file da dentro login.php che risiede su www.azienda.eu?
    b) come rispondo dal file invocato, chk_lic.php;
    c) mi sono fatto una funzione che cripta e decripta e poi la camuffo in qualche chiamata...
    ma il problema è come gestire la chiamata di controllo e come rispondere con OK - KO .
    grazie, sempre.

  7. #7
    Utente di HTML.it L'avatar di clasku
    Registrato dal
    Aug 2006
    Messaggi
    3,197
    Per classe primaria intendevo un oggetto che devi istanziare ogni volta che esegui il tuo codice, ma non sapendo cosa hai scritto non so essere più preciso

    a) fai una chiamata http da php passando i dati che vuoi verificare (aziende.eu chiama via http il tuo script su miosito.eu e rimane in attesa di una risposta)
    b) dalla chiamata http restituisci qualcosa (una stringa, un json, un xml, altro) che il chiamante leggerà e farà proseguire l’esecuzione se tutte le condizioni saranno soddisfatte

    in pratica, una paginetta web che restituisca qualcosa, quasi un web service (REST)

    Dovrai anche valutare con comportarti in caso di problemi “sistemistici” sul chiamante (tipo il divieto di chiamate http da php verso siti esterni)

  8. #8
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,360
    Bisogna anche vedere aspetti legali. Cosa succede se il server che controlla la validità della chiave non funziona e quindi impedisce al cliente di usare il suo sito ?
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

  9. #9
    Utente di HTML.it
    Registrato dal
    Jul 2016
    Messaggi
    245
    Quote Originariamente inviata da clasku Visualizza il messaggio
    Per classe primaria intendevo un oggetto che devi istanziare ogni volta che esegui il tuo codice, ma non sapendo cosa hai scritto non so essere più preciso

    a) fai una chiamata http da php passando i dati che vuoi verificare (aziende.eu chiama via http il tuo script su miosito.eu e rimane in attesa di una risposta)
    b) dalla chiamata http restituisci qualcosa (una stringa, un json, un xml, altro) che il chiamante leggerà e farà proseguire l’esecuzione se tutte le condizioni saranno soddisfatte

    in pratica, una paginetta web che restituisca qualcosa, quasi un web service (REST)

    Dovrai anche valutare con comportarti in caso di problemi “sistemistici” sul chiamante (tipo il divieto di chiamate http da php verso siti esterni)
    Perdonami, apprezzo il tuo sforzo ma non capisco.
    Non so fare una pagina che 'restituisce qualcosa'. (chiamata http???
    )
    Mi puoi fare un esempio?
    Ho fatto dei test e chiamo senza difficoltà :
    questo è nel file di login del sito www.azienda.eu
    Codice PHP:
      $test="pippa";
      
    $test1="licenza nr 3344334";
           
    $params ="https://www.miosito.eu/chk_lic.php?azienda=".cripta($test)."&licenza=".cripta($test1);

      
    header('Location: '.$params); 
    e ricevo correttamente i dati, li decripto nel file, e faccio controlli; ma come 'restituisco' un valore?
    (so pippa, lo vedi pure dal test! ;-) )
    Ultima modifica di delpho; 11-12-2017 a 00:44

  10. #10
    Utente di HTML.it
    Registrato dal
    Jul 2016
    Messaggi
    245
    Quote Originariamente inviata da badaze Visualizza il messaggio
    Bisogna anche vedere aspetti legali. Cosa succede se il server che controlla la validità della chiave non funziona e quindi impedisce al cliente di usare il suo sito ?
    questa è una buona osservazione, hai una soluzione?

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.