Schutz Ihres Produkts
Ein wichtiger Aspekt des Erfolgs als Anbieter digitaler Produkte besteht darin, Vorsichtsmaßnahmen zum Schutz Ihres Produkts vor unrechtmäßigem Herunterladen zu ergreifen. In dieser Anleitung finden Sie verschiedene Möglichkeiten, wie Sie Ihr Produkt schützen können.
Schutz der Thank You Page
Hier sehen Sie einige Vorschläge zum Schutz Ihrer Thank You Page:
- Fügen Sie den folgenden HTML-Code in das <HEAD>-Element Ihrer Thank You Page ein, um Suchmaschinenroboter daran zu hindern, die Seite zu indizieren oder Links darauf zu verfolgen:
META name=”robots” content=”noindex, nofollow” - Geben Sie der Thank You Page URL einen Dateinamen, der nicht sofort auf ihre Funktion hindeutet (danke.htm wäre beispielsweise zu leicht zu erraten).
- Wenn Sie sich Sorgen um die Sicherheit machen und sich mit CGI-Programmierung auskennen, können Sie ein Skript erzeugen, das den erfolgreichen Abschluss des Kaufvorgangs durch den Kunden prüft, bevor diesem Zugang zur Thank You Page gewährt wird. Befolgen Sie die Anweisungen im nächsten Abschnitt, um das ClickBank-Skript für die Linksicherheit zu implementieren.
ClickBank-Skript für die Linksicherheit
Sobald ein Kunde einen Kauf abschließt, werden in der Abfragezeichenfolge mehrere Werte an Ihre Thank You Page übermittelt, wenn Sie in den Kontoeinstellungen einen Geheimcode (Verknüpfung mit Glossareintrag) festgelegt haben. Dabei handelt es sich um die ClickBank-Belegnummer (cbreceipt), den Zeitpunkt der Bestellung (time), die ClickBank-Artikelnummer (item) sowie den ClickBank-Kaufnachweis (cbpop).
Während des Kaufvorgangs verschlüsseln wir Beleg, Uhrzeit und Artikel mit dem in Ihrem Konto angegebenen Geheimcode. Das Ergebnis wird als Abfragezeichenfolgen-Parameter cbpop an Sie weitergeleitet. Prüfen Sie mit dem Validierungsskript, ob der Wert cbpop korrekt ist.
Im Gegensatz zu den Vorgängerversionen ist kein “seed”-Wert mehr nötig.
Die folgenden C#-, VB.NET- und Ruby-Beispiele bieten nur eine Methode zur Prüfung auf einen korrekten cbpop-Wert. Die Erfassung der Anforderungsparameter wird Ihrer individuellen Implementierung überlassen. Die Codebeispiele gelten nicht für den Instant Notification Service.
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='&'.$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 As String, ByVal cbpop As String) As Boolean
Dim key As String = "YOUR SECRET KEY"
Dim sha As New SHA1CryptoServiceProvider()
Dim mash As String = key & "|" & receipt & "|" & time & "|" & item
Dim result() As Byte = sha.ComputeHash(New System.Text.ASCIIEncoding().GetBytes(mash))
Dim xxpop As String = BitConverter.ToString(result).Replace("-", "").ToUpper().Substring(0,
|
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
|


