DLGuard
fully integrated with the major payment systems
Paypal
Clickbank
2checkout
Authorize.Net
Click2Sell
1ShoppingCart
LinkPoint
AlertPay
eBay
PayDotCom
Mal's e-commerce
PagSeguro
CCBill
CommerceGate
DigiResults
FastSpring
JVZoo
MultiSafePay
WorldPay
Plimus
WSO Pro
Paypal Digital Goods
RevenueWire
SWReg
     

Product protection after download
Goto page 1, 2, 3  Next
 
Post new topic   Reply to topic    DLGuard Forum Forum Index -> Member's Tips and Tricks!
View previous topic :: View next topic  
Author Message
nmc



Joined: 16 Jun 2007
Posts: 2

PostPosted: Sat Jun 16, 2007 9:28 pm    Post subject: Product protection after download Reply with quote

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
View user's profile Send private message
admin
Site Admin


Joined: 31 Jul 2005
Posts: 9396
Location: Australia

PostPosted: Sun Jun 17, 2007 7:54 am    Post subject: Reply with quote

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
View user's profile Send private message Send e-mail Visit poster's website
stevenh77



Joined: 09 May 2006
Posts: 26

PostPosted: Thu Jun 28, 2007 3:26 pm    Post subject: Reply with quote

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
View user's profile Send private message
admin
Site Admin


Joined: 31 Jul 2005
Posts: 9396
Location: Australia

PostPosted: Thu Jun 28, 2007 10:29 pm    Post subject: Reply with quote

Excellent tip, Steven!

I'll move this thread to the members tips area so other people can find it easier - thanks for sharing!

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
View user's profile Send private message Send e-mail Visit poster's website
nmc



Joined: 16 Jun 2007
Posts: 2

PostPosted: Thu Jun 28, 2007 10:46 pm    Post subject: Reply with quote

I don't offer software, but content in a pdf. I'm going with Adobe Document Center.
Back to top
View user's profile Send private message
schwartz



Joined: 03 Aug 2005
Posts: 115

PostPosted: Fri Jun 29, 2007 6:39 am    Post subject: Reply with quote

This is very interesting, Steve. Thanks!

But ... how safe or secure is this, Sam?
_________________
-David "The Tool Wiz" Schwartz
Back to top
View user's profile Send private message
admin
Site Admin


Joined: 31 Jul 2005
Posts: 9396
Location: Australia

PostPosted: Sat Jun 30, 2007 11:05 pm    Post subject: Reply with quote

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
View user's profile Send private message Send e-mail Visit poster's website
stevenh77



Joined: 09 May 2006
Posts: 26

PostPosted: Sun Jul 01, 2007 2:14 am    Post subject: Reply with quote

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
View user's profile Send private message
boggle



Joined: 04 Sep 2007
Posts: 20

PostPosted: Tue Sep 04, 2007 7:49 pm    Post subject: Reply with quote

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
View user's profile Send private message
admin
Site Admin


Joined: 31 Jul 2005
Posts: 9396
Location: Australia

PostPosted: Tue Sep 04, 2007 10:24 pm    Post subject: Reply with quote

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
View user's profile Send private message Send e-mail Visit poster's website
Hackbridge



Joined: 09 Mar 2007
Posts: 35
Location: Wolverhampton, West Midlands, UK

PostPosted: Sat Sep 22, 2007 12:22 am    Post subject: How do you implement that C++ code please? Reply with quote

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 Embarassed

Brian
Back to top
View user's profile Send private message Visit poster's website
cjb



Joined: 21 Oct 2007
Posts: 21

PostPosted: Mon Nov 19, 2007 5:06 pm    Post subject: Reply with quote

I just use ebookgold. It's a wrap! Laughing
Back to top
View user's profile Send private message
cjb



Joined: 21 Oct 2007
Posts: 21

PostPosted: Mon Nov 19, 2007 5:11 pm    Post subject: Reply with quote

I just use ebookgold. It's a wrap! Laughing
Back to top
View user's profile Send private message
admin
Site Admin


Joined: 31 Jul 2005
Posts: 9396
Location: Australia

PostPosted: Tue Nov 20, 2007 4:54 am    Post subject: Reply with quote

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
View user's profile Send private message Send e-mail Visit poster's website
AndrewTraub



Joined: 07 May 2008
Posts: 15

PostPosted: Thu May 08, 2008 1:46 am    Post subject: Great work, but one thing is missing Reply with quote

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
View user's profile Send private message Visit poster's website
Display posts from previous:   
Post new topic   Reply to topic    DLGuard Forum Forum Index -> Member's Tips and Tricks! All times are GMT
Goto page 1, 2, 3  Next
Page 1 of 3

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2005 phpBB Group