13.09.2016 Views

PHP and MySQL Web Development 4th Ed-tqw-_darksiderg

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

348 Chapter 15 E-commerce Security Issues<br />

Poor Testing<br />

Testing for all possible input conditions, on all possible types of hardware, running all<br />

possible operating systems with all possible user settings is rarely achievable.This situation<br />

is even more true than usual with web-based systems.<br />

What is needed is a well-designed test plan that tests all the functions of your software<br />

on a representative sample of common machine types. A well-planned set of tests should<br />

aim to test every line of code in your project at least once. Ideally, this test suite should<br />

be automated so that it can be run on your selected test machines with little effort.<br />

The greatest problem with testing is that it is unglamorous <strong>and</strong> repetitive. Although<br />

some people enjoy breaking things, few people enjoy breaking the same thing over <strong>and</strong><br />

over again. It is important that people other than the original developers are involved in<br />

testing. One of the major goals of testing is to uncover faulty assumptions made by the<br />

developers. A person who can approach the project with fresh ideas is much more likely<br />

to have different assumptions. In addition, professionals are rarely keen to find flaws in<br />

their own work.<br />

Repudiation<br />

The final risk we will consider is repudiation. Repudiation occurs when a party involved<br />

in a transaction denies having taken part. E-commerce examples might include a person<br />

ordering goods off a website <strong>and</strong> then denying having authorized the charge on his<br />

credit card, or a person agreeing to something in email <strong>and</strong> then claiming that somebody<br />

else forged the email.<br />

Ideally, financial transactions should provide the peace of mind of nonrepudiation to<br />

both parties. Neither party could deny their part in a transaction, or, more precisely, both<br />

parties could conclusively prove the actions of the other to a third party, such as a court.<br />

In practice, this rarely happens.<br />

Authentication provides some surety about whom you are dealing with. If issued by a<br />

trusted organization, digital certificates of authentication can provide greater confidence.<br />

Messages sent by each party also need to be tamperproof.There is not much value in<br />

being able to demonstrate that Corp Pty Ltd sent you a message if you cannot also<br />

demonstrate that what you received was exactly what the company sent. As mentioned<br />

previously, signing or encrypting messages makes them difficult to surreptitiously alter.<br />

For transactions between parties with an ongoing relationship, digital certificates<br />

together with either encrypted or signed communications are an effective way of<br />

limiting repudiation. For one-off transactions, such as the initial contact between an<br />

e-commerce website <strong>and</strong> a stranger bearing a credit card, they are not so practical.<br />

An e-commerce company should be willing to h<strong>and</strong> over proof of its identity <strong>and</strong><br />

a few hundred dollars to a certifying authority such as VeriSign (http://www.<br />

verisign.com/) or Thawte (http://www.thawte.com/) to assure visitors of the company’s<br />

bona fides.Would that same company be willing to turn away every customer who was<br />

not willing to do the same to prove her identity? For small transactions, merchants are

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!