| View previous topic :: View next topic |
| Author |
Message |
nmc
Joined: 16 Jun 2007 Posts: 2
|
Posted: Sat Jun 16, 2007 9:28 pm Post subject: Product protection after download |
|
|
| Once a customer has paid and downloaded a product, they can effectively e-mail it to everyone they know, or post it on a P2P network or server, where it is no longer secure, is that right? Just making sure I understand how DLGuard works. |
|
| Back to top |
|
 |
admin Site Admin
Joined: 31 Jul 2005 Posts: 9134 Location: Australia
|
Posted: Sun Jun 17, 2007 7:54 am Post subject: |
|
|
Hi NMC,
DLGuard is designed to be the first line of defense: it secures your sales process and your download process, and allows you to manage your customers quickly and easily.
For products after they've been downloaded then there are a number of ways to implement copy protection, and this will depend on the kind of product you have. If it's a software script or program then you can use DLGuard to help validate customers. If it's an ebook then there are a number of solutions that can "wrap" PDF's, but these can also annoy your customers, and won't work for Mac customers. If you're planning on using a PDF wrapper then you need to consider this very carefully before doing so, as they can annoy your valid and good customers.
cheers
Sam _________________ Sam Stephens
DLGuard: www.dlguard.com
GuardHQ: www.guardhq.com
-------
Keep up to date with DLGuard and other GuardHQ products: www.guardhq.com/newsletter.php
www.twitter.com/DLGuard |
|
| Back to top |
|
 |
stevenh77
Joined: 09 May 2006 Posts: 26
|
Posted: Thu Jun 28, 2007 3:26 pm Post subject: |
|
|
Like Same said, if your product is software or a script you can use DLGuard to make sure it's a valid copy. It's actually pretty easy, I whipped up some C# code to take care of it a while back.
| Code: |
using System;
using System.Collections.Generic;
using System.IO;
using System.Net;
using System.Text;
namespace DLGInterOp
{
public sealed class DLGuard
{
#region "Static Properties"
public static String Key
{
get { return m_Key; }
set { m_Key = value; }
}
public static String Url
{
get { return m_Url; }
set { m_Url = value; }
}
#endregion
#region "Static Methods"
/// <summary>
/// Performs DLGuard Product Validation query
/// Key and Url must be set
/// </summary>
/// <param name="Receipt">Receipt Number</param>
/// <param name="ProductID">DLGuard Product ID</param>
/// <returns>True if product is valid and not refunded</returns>
public static bool ProductValidate(String Receipt, String ProductID)
{
bool retVal = false;
String strQuery = Url + "&r=" + Receipt + "&p=" + ProductID + "&k=" + Key;
WebRequest request = WebRequest.Create(strQuery);
WebResponse response = (WebResponse)request.GetResponse();
Stream dataStream = response.GetResponseStream();
StreamReader reader = new StreamReader(dataStream);
string responseFromServer = reader.ReadToEnd();
string dlgResponse = responseFromServer.Substring(9, responseFromServer.Length - 9);
string dlgReceiptValid = dlgResponse.Substring(2, 1);
string dlgProductValid = dlgResponse.Substring(4, 1);
string dlgIsRefunded = dlgResponse.Substring(6, 1);
if ((dlgReceiptValid=="1")&&
(dlgProductValid=="1") &&
(dlgIsRefunded=="0"))
{
retVal = true;
}
return retVal;
}
#region "Private Static Member Fields"
private static String m_Key = "";
private static String m_Url = "";
#endregion
}
}
|
_________________ Check out my blog, Steven's Internet Marketing Tips.
Last edited by stevenh77 on Sun Jul 01, 2007 2:08 am; edited 1 time in total |
|
| Back to top |
|
 |
admin Site Admin
Joined: 31 Jul 2005 Posts: 9134 Location: Australia
|
|
| Back to top |
|
 |
nmc
Joined: 16 Jun 2007 Posts: 2
|
Posted: Thu Jun 28, 2007 10:46 pm Post subject: |
|
|
| I don't offer software, but content in a pdf. I'm going with Adobe Document Center. |
|
| Back to top |
|
 |
schwartz
Joined: 03 Aug 2005 Posts: 115
|
Posted: Fri Jun 29, 2007 6:39 am Post subject: |
|
|
This is very interesting, Steve. Thanks!
But ... how safe or secure is this, Sam? _________________ -David "The Tool Wiz" Schwartz |
|
| Back to top |
|
 |
admin Site Admin
Joined: 31 Jul 2005 Posts: 9134 Location: Australia
|
Posted: Sat Jun 30, 2007 11:05 pm Post subject: |
|
|
Hi David,
I don't know C++, so I can't comment on the code, but the method is fine - it's a built in option with DLGuard.
You ask your customer for their email address and receipt and then post it to DLGuard. DLGuard checks the details against listing in the database, and then returns the results.
DLGuard acts as a customer management and validation system, and your code handles the rest.
cheers
Sam _________________ Sam Stephens
DLGuard: www.dlguard.com
GuardHQ: www.guardhq.com
-------
Keep up to date with DLGuard and other GuardHQ products: www.guardhq.com/newsletter.php
www.twitter.com/DLGuard |
|
| Back to top |
|
 |
stevenh77
Joined: 09 May 2006 Posts: 26
|
Posted: Sun Jul 01, 2007 2:14 am Post subject: |
|
|
| admin wrote: | | I don't know C++, so I can't comment on the code, but the method is fine - it's a built in option with DLGuard. |
The code is actually C# (.NET), but it could easily be done in C++. I'm a Computer Science student and I'm taking C# and C++ right now, so maybe some time in the future I'll write a C++ version. The C# code can also be called from a VB.NET project if you have the full Visual Studio or (with the Express Editions) compile it to a DLL and add it to your VB.NET project.
As far as safety goes, there is a slight security risk, but only if you have the "add user" query enabled in DLGuard (and it's disabled by default). _________________ Check out my blog, Steven's Internet Marketing Tips. |
|
| Back to top |
|
 |
boggle
Joined: 04 Sep 2007 Posts: 20
|
Posted: Tue Sep 04, 2007 7:49 pm Post subject: |
|
|
| That looks really good i am currently having some software made for me, so if i gave that code to my coder he could include it in the software? |
|
| Back to top |
|
 |
admin Site Admin
Joined: 31 Jul 2005 Posts: 9134 Location: Australia
|
Posted: Tue Sep 04, 2007 10:24 pm Post subject: |
|
|
Hi Boggle,
Yes, you could give the code to your programmer, however if he's writing in a different language it might not mean much to him.
If you give him acecss to your DLGuard installation (which he'll need to test the script anyway), then get him to check out the Help menu and select Developers.
There are instructions on how to use the query function there.
cheers
Sam _________________ Sam Stephens
DLGuard: www.dlguard.com
GuardHQ: www.guardhq.com
-------
Keep up to date with DLGuard and other GuardHQ products: www.guardhq.com/newsletter.php
www.twitter.com/DLGuard |
|
| Back to top |
|
 |
Hackbridge
Joined: 09 Mar 2007 Posts: 35 Location: Wolverhampton, West Midlands, UK
|
Posted: Sat Sep 22, 2007 12:22 am Post subject: How do you implement that C++ code please? |
|
|
Dear all
I'd dearly love to implement that code to any products I sell.
How is it incorporated into a pdf product or an exe file?. So that they have to marry up the details with a clickbank or paypal receipt.
Sorry if I'm not so sure about this
Brian |
|
| Back to top |
|
 |
cjb
Joined: 21 Oct 2007 Posts: 21
|
Posted: Mon Nov 19, 2007 5:06 pm Post subject: |
|
|
I just use ebookgold. It's a wrap!  |
|
| Back to top |
|
 |
cjb
Joined: 21 Oct 2007 Posts: 21
|
Posted: Mon Nov 19, 2007 5:11 pm Post subject: |
|
|
I just use ebookgold. It's a wrap!  |
|
| Back to top |
|
 |
admin Site Admin
Joined: 31 Jul 2005 Posts: 9134 Location: Australia
|
Posted: Tue Nov 20, 2007 4:54 am Post subject: |
|
|
Hi Brian,
The code isn't able to be used for PDF files.
For EXE files, I assume you're talking about software? Not just a compiled ebook?
The reason I ask is that the code is designed for developers. When your software is written, your programmer would use DLGuard's Query function to verify that your customer is legit.
So you'd need to pass this info on to your programmer, and have him write the code into your software before compiling it.
If you'd like to protect PDF files, then you can also check out EbookGold as CJB mentioned - there are a number of DLGuard customers using this with DLGuard.
cheers
Sam _________________ Sam Stephens
DLGuard: www.dlguard.com
GuardHQ: www.guardhq.com
-------
Keep up to date with DLGuard and other GuardHQ products: www.guardhq.com/newsletter.php
www.twitter.com/DLGuard |
|
| Back to top |
|
 |
AndrewTraub
Joined: 07 May 2008 Posts: 15
|
Posted: Thu May 08, 2008 1:46 am Post subject: Great work, but one thing is missing |
|
|
| stevenh77 wrote: | Like Same said, if your product is software or a script you can use DLGuard to make sure it's a valid copy. It's actually pretty easy, I whipped up some C# code to take care of it a while back.
| Code: |
using System;
using System.Collections.Generic;
using System.IO;
using System.Net;
using System.Text;
namespace DLGInterOp
{
public sealed class DLGuard
{
#region "Static Properties"
public static String Key
{
get { return m_Key; }
set { m_Key = value; }
}
public static String Url
{
get { return m_Url; }
set { m_Url = value; }
}
#endregion
#region "Static Methods"
/// <summary>
/// Performs DLGuard Product Validation query
/// Key and Url must be set
/// </summary>
/// <param name="Receipt">Receipt Number</param>
/// <param name="ProductID">DLGuard Product ID</param>
/// <returns>True if product is valid and not refunded</returns>
public static bool ProductValidate(String Receipt, String ProductID)
{
bool retVal = false;
String strQuery = Url + "&r=" + Receipt + "&p=" + ProductID + "&k=" + Key;
WebRequest request = WebRequest.Create(strQuery);
WebResponse response = (WebResponse)request.GetResponse();
Stream dataStream = response.GetResponseStream();
StreamReader reader = new StreamReader(dataStream);
string responseFromServer = reader.ReadToEnd();
string dlgResponse = responseFromServer.Substring(9, responseFromServer.Length - 9);
string dlgReceiptValid = dlgResponse.Substring(2, 1);
string dlgProductValid = dlgResponse.Substring(4, 1);
string dlgIsRefunded = dlgResponse.Substring(6, 1);
if ((dlgReceiptValid=="1")&&
(dlgProductValid=="1") &&
(dlgIsRefunded=="0"))
{
retVal = true;
}
return retVal;
}
#region "Private Static Member Fields"
private static String m_Key = "";
private static String m_Url = "";
#endregion
}
}
|
|
The only problem with this type of security is that it allows people to share the receipt number and use the same product. You should add some extra security, like a hash of the machine profile that is checked to make it really secure. _________________ Andrew
http://www.softwarefactoryinc.com |
|
| Back to top |
|
 |
|