Re: Credit Cards & MySQL
| From: | David Otton | Date: | Fri, 16 May 2003 21:19:40 +0000 |
| Subject: | Re: Credit Cards & MySQL | ||
| References: | 1 | Groups: | php.general |
| Request: | Send a blank email to php-general+get-147977@lists.php.net to get a copy of this message | ||
On Fri, 16 May 2003 15:43:16 -0500, you wrote:
>I'm doing a project for my new company and I need to store credit card
>numbers in the database then later send them to a credit card processor's
>API later on. What would be the best way to put these numbers in the
>database and encrypt them but be able to decrypt them when I need to
>send it to the api system?
Well, if you have to ask on a free-advice internet mailing list.... say,
could you tell us who the project's for, so we can avoid using it? k thx.
[Now the sarcasm's out the way - and really, you deserve it, something like
this is potentially too damaging not to call in an expert - I'd employ three
(logical) machines. A is the world-facing machine, and receives CC numbers.
B is the database. C is the machine that batches up the CCs and forwards
them.
A has permission to do INSERTs on B. Nothing else.
B and C are firewalled/NATted to the hilt.
C has SELECT and UPDATE/DELETE permission on B.
Even if A is compromised, the attacker still doesn't have a
username/password that can do anything except add additional records.
Why not encryption? Because symmetric encryption would be valueless on a
compromised machine, and public-key encryption still needs the
multiple-machine model to keep the private key secure from an attacker.]
>Stephen Craton
>Senior Executive Web Developer
>Mophus.com, Inc.