Come posso proteggere il mio prodotto?

Una parte importante di essere un venditore di prodotti digitali di successo è prendere precauzioni per proteggere il tuo prodotto da essere scaricato senza permesso. In questa guida, spieghiamo alcuni passi che possono aiutare al tenere il tuo prodotto al sicuro.

Protezione per Pagine di Ringraziamento

Per proteggere la tua Pagina di Ringraziamento utilizza questi trucchi:

  1. Inserendo il seguente codice HTML nell'elemento della tua Pagina di ringraziamento puoi impedire ai robot dei motori di ricerca di indicizzare la pagina o i seguenti link a quella pagina:
    <META name="robots" content="noindex, nofollow"/&gt
  2. Attribuisci all'URL della tua pagina di ringraziamento un nome file strano (per es. non dovresti usare grazie.htm, che è troppo semplice da trovare).
  3. Se sei preoccupato per la sicurezza e hai esperienza con CGI programming, puoi generare uno script che verifica l'acquisto prima di permettere il cliente ad accedere alla Pagina di Ringraziamento. Segui le istruzioni di sotto elencati per implementare il Link Security Script ClickBank.

ClickBank Link Security Script

Quando un cliente fa un acquisto, alcuni valori sono passati in una query string alla tua pagina di ringraziamento se hai specificato una chiave secreta negli impostazioni del tuo account. I valori sono il numero d'ordine (cbreceipt), l'orario epoch dell'ordine (time), l'articolo ClickBank (item), e la prova d'acquisto (cbpop).

Durante l'acquisto, criptiamo l'ordine, tempo, e articolo usando la chiave secreta specificata nel tuo account. Passiamo il risultato come un query string parameter chiamato cbpop. Utilizza lo script verifica per confermare che il valore cbpop è corretto.

Diversamente da versioni precedenti, non c'è bisogno di un valore "seed".

Gli esempi C#, VB.NET e Ruby di sotto sono solo un metodo per controllare la validità di un valore cbpop. La cattura dei parametri deve essere effettuate tramite il tuo code. Questi esempi di code non si applicano al Servizio di notifica istantanea.


 

PHP SOURCE:

 

function cbValid()
{ $key='YOUR SECRET KEY';
  $rcpt=$_REQUEST['cbreceipt'];
  $time=$_REQUEST['time'] 
  $item=$_REQUEST['item'] 
  $cbpop=$_REQUEST['cbpop'] 

  $xxpop=sha1("$key|$rcpt|$time|$item") 
  $xxpop=strtoupper(substr($xxpop,0,8)) 

  if ($cbpop==$xxpop) return 1 
  else return 0 
}

 


 

PERL SOURCE:

 

sub cbValid
{ my($q,$key,$rcpt,$time,$item,$cbpop,$xxpop) 
  $key='YOUR SECRET KEY' 

  $q='&amp;'.$ENV{'QUERY_STRING'} 
  $q=~/Wcbreceipt=(w+)/; $rcpt=$1 
  $q=~/Wtime=(w+)/;      $time=$1 
  $q=~/Witem=(w+)/;      $item=$1 
  $q=~/Wcbpop=(w+)/;     $cbpop=$1 

  use Digest::SHA1 qw(sha1_hex) 
  $xxpop=uc(substr(sha1_hex("$key|$rcpt|$time|$item"),0,8)) 
  return 1 if $cbpop eq $xxpop 
  return 0 
}

 


 

C# SOURCE:

 

public bool cbValid(string cbreceipt, string time, string item, string cbpop)
{
    string secret_key = "YOUR SECRET KEY" 

    byte[] data = Encoding.Default.GetBytes(secret_key + "|" + cbreceipt + "|" + time + "|" + item) 
    byte[] hashedData = new SHA1Managed().ComputeHash(data) 

    string xxpop = BitConverter.ToString(hashedData).Replace("-","").ToUpper().Substring(0, 8) 

    return cbpop.Equals(xxpop) 
}

 


 

VB.NET SOURCE:

 

Public Function cbValid(ByVal receipt As String, ByVal time As String, ByVal item AsString, ByVal cbpop As String) As Boolean
    Dim key As String = "YOUR SECRET KEY"
    Dim sha As New SHA1CryptoServiceProvider()
    Dim mash As String = key &amp; "|" &amp; receipt &amp; "|" &amp; time &amp; "|" &amp; item

    Dim result() As Byte = sha.ComputeHash(NewSystem.Text.ASCIIEncoding().GetBytes(mash))

    Dim xxpop As String = BitConverter.ToString(result).Replace("-","").ToUpper().Substring(0, 8)

    Return cbpop.Equals(xxpop)
End Function

 


 

Ruby SOURCE:

 

require 'digest/sha1'

def cbValid(receipt, time, item, cbpop)
  key = "YOUR SECRET KEY"

  popCheck = "#{key}|#{receipt}|#{time}|#{item}"
  xxpop = Digest::SHA1.hexdigest(popCheck).upcase[0,8]

  cbpop == xxpop
end

 


 

Python SOURCE:

 

import hashlib

def valid_cb_pop(receipt, time, item, cbpop):
    secret_key = 'YOUR SECRET KEY'
    data = "%s|%s|%s|%s" % (secret_key, receipt, time, item)
    return cbpop == hashlib.sha1(data).hexdigest()[:8].upper()

 


 

Java SOURCE:

 

import org.apache.commons.codec.digest.DigestUtils 

/**
* Note:  To make this method simple it uses the Apache Commons Codec library for computing the SHA value.
*        This library is available at: http://commons.apache.org/codec/
**/

public class CBPopValidator {

     /**
     * Code to validate cbpop parameter passed from ClickBank orderform to thank-you page.
     *
     * @param receipt The receipt number that ClickBank generated and passed to thank-you page.
     * @param time The time (unix timestamp) of the purchase, also passed to thank-you page
     * @param item The item purchased, also passed to thank-you page
     * @param cbpop The passed validation parameter
     * @return True of passed cbpop matches the calculated cbpop using the passed parameters and secret key
     **/
    public static boolean validCbPop(final String receipt, final String time, final String item, final String cbpop) {
        // secret key on the site of your ClickBank account
        final String secretKey = "YOUR SECRET KEY" 

        // create sha1 of passed data with secret key
        String hashedData = DigestUtils.shaHex(String.format("%s|%s|%s|%s", secretKey, receipt, time, item)) 

        // compare hashed result to passed value
        return hashedData != null &amp;&amp; hashedData.substring(0,8).equalsIgnoreCase(cbpop) 
    }
}
Altre domande? Invia una richiesta

0 Commenti

Accedi per aggiungere un commento.
Powered by Zendesk