03 February 2009

Give the Developers a Good Start

In a previous post about positive security models I talked about defining exactly what interactions and data flows are allowed in your web application. However, it's often left up to the development team to choose what they think is correct, and they then get the blame when things go wrong. Don't let this happen!

I also touched a little on this topic in Free Text Form Field Data Validation and Know Your Form Data, but it's very common to come across cases where no-one has thought about the requirements enough.

As an example, I was recently looking at audit requirements. The Audit Commission runs the National Fraud Initiative (NFI) which provides a means of data sharing to detect fraud across audited government bodies and best value authorities in England. There is a Code of Data Matching Practice and they have produced a number of data specifications for the Data File Upload (DFU) facility. So, have the data types, ranges/lengths, character sets, formats, syntax, cardinality and everything else pertinent been defined?

No.

Looking at one of the more "elaborate" specifications, for payroll:

Partial screen capture showing the table from the payroll data specification (link above)

The data fields are defined as "numeric", "date" or "character" and the majority have no further definition. Does "character" mean "anything"? So we don't know how long a surname could be, what format is to be used for the date of birth, or what is expected in the "leaver indicator" field. I know how hard it can be to discover data specifications, especially if there are multiple proprietary systems, but how do we expect developers to build secure applications if we don't give them the correct information? If we don't know exactly what's allowed in the data, how do we validate it, how do we know what to send and how do we know whether we are allowed to send it?

This type of thing can mean developers not bothering with data validation at all and testers being unable to create test cases. That can lead to invalid characters, formats or even programming code being accepted as valid input which should otherwise be rejected.

Posted on: 03 February 2009 at 10:25 hrs

Comments Comments (0) | Permalink | Send Send | Post to Twitter

Comments

Comments are filtered automatically and should appear shortly after they been checked.

Post a comment
Confirm acceptance and understanding of the terms of use
New posts to this thread will be sent to your email address
Give the Developers a Good Start
http://www.clerkendweller.com/2009/2/3/Give-the-Developers-a-Good-Start
ISO/IEC 18004:2006 QR code for http://clerkendweller.com

Page http://www.clerkendweller.com/2009/2/3/Give-the-Developers-a-Good-Start
Requested by 38.107.179.222 on Tuesday, 7 February 2012 at 21:13 hrs (London date/time)

Please read our terms of use and obtain professional advice before undertaking any actions based on the opinions, suggestions and generic guidance presented here. Your organisation's situation will be unique and all practices and controls need to be assessed with consideration of your own business context.

Terms of use http://www.clerkendweller.com/page/terms
Privacy statement http://www.clerkendweller.com/page/privacy
© 2009-2012 clerkendweller.com