Avoiding 10 common Web-application flaws

Daily Newsletters

Sign up to ZDNet UK's daily newsletter.

COMMENT

If only writing articles were as easy as testing the security of Web applications. I was recently asked to compile a list of the most common Web application security mistakes. These are the "gotchas" I usually see:

  • Blind trust of information retrieved from cookies and parameters passed in the URL
  • Unchecked input on screens
  • Pre-validation accounts
  • Unconstrained user navigation
  • Setting Web folder permissions incorrectly
  • Caching of sensitive information
  • Leaving Web server demos installed (like those loaded by default with IIS)
  • Forgetting to change default passwords on the database backend
  • Not loading security patches
  • Leaving Web administration ports enabled
  • Here's a brief description of the first five common mistakes:

    Trust but verify
    "Trust but verify" was the motto of one of my favourite bosses. This is a motto that Web application designers and programmers would do well to adopt. While cookies and URL-borne parameters make life much easier for the developer, the data passed in should always be validated.

    Many Web-based businesses learned this the hard way with the infamous "shopping cart vulnerability," which enabled cyber thieves to change prices of items placed in the shopping cart. The shopping cart was nothing more than a text-based cookie. Upon checkout, the server would total the prices for the items stored in the cookie. Imagine -- the client had total control over the prices. Worse, the server had no means of validating the data. I'm sure a lot of businesses experienced sticker shock!

    The best way to check for this is to clear all cookies, run the application, and look at the cookies written to the disk. I always look at cookie content to validate that sensitive information is not stored in cookies such as roles -- or worse, user IDs and passwords.

    Commands can equate to control
    I was once asked to look at a system that passed program controls via parameters sent in the URL. As I looked at the source code, I noticed a common thread. System-level commands were embedded in the URL as follows: "action='do something.'"

    During testing, I crafted a couple of customised URLs to see how the system handled them. Consequently, I was able to take control of the system via the commands I passed in that the system didn't anticipate: "action='cat xxx >> /etc/passwd.'"

    The long and short of it is this: if you pass parameters via the URL-bar, at least parse them for invalid and malicious content. Set some constraints for your parameters so that if an unexpected value is passed in, your application can handle it properly. This is also easy to test -- modify the address in the URL bar and see how the application handles the data.

    Post your comment

    In order to post a comment you need to be registered and logged in.

    You can also log in with Facebook. Log in or create your ZDNet UK account below

    • Login

    Will not be displayed with your comment

    By signing up for this service, you indicate that you agree to our Terms and Conditions and have read and understood our Privacy Policy. Questions about membership? Find the answers in the Community FAQ

    Get ZDNet UK's daily newsletter

    Enter your email address to sign up

    ZDNet UK Live

    Jack Schofield

    @openhgs Windows users have had multiple desktops since Linus started writing Linux. They just haven't shipped as standard because not enough...

    8 hours ago by Jack Schofield on Windows 8 could speed multi-monitor uptake
    Jack Schofield

    @Phil at Cloud4 What, Microsoft gets £1,200 per PC and £1,622 per server? Gosh, I'm amazed....

    9 hours ago by Jack Schofield on 6 million wasted licences and £1,200 PCs: welcome to government IT
    craigsc

    You guys have no idea what is going on at Autonomy. Autonomy could have been a much more profitable organization. The sales operations at Autonomy...

    10 hours ago by craigsc on HP cuts 27,000 staff as Autonomy chief Lynch leaves
    Moley

    How does this impact on dual or multi booting? Seems to me to more or less prohibit this, from Windows 8 anyway. Will Grub 2 recognise Windows 8,...

    10 hours ago by Moley on Windows 8 start-up speed forces USB boot workaround
    apexwm

    I don't understand why there cannot be a slight pause during the boot process so the user can press a key. Many operating systems do this, even if...

    11 hours ago by apexwm on Windows 8 start-up speed forces USB boot workaround
    Gavin Goodman

    You can now buy the Xi3 modular computer in the UK at http://www.ocdistribution.com . This can be bought with the Tand3m software, pricing and...

    12 hours ago by Gavin Goodman on CES 2012: Xi3 microSERV3R
    Phil at Cloud4

    I agree: Mike Lynch can clearly build a business and manage strategy. I suspect the exit of Mike is more likely the end of a planned handover...

    15 hours ago by Phil at Cloud4 on HP cuts 27,000 staff as Autonomy chief Lynch leaves
    Phil at Cloud4

    This is unbeleivable government wastage with only one winner... Microsoft 1 - Tax payer Nil!

    15 hours ago by Phil at Cloud4 on 6 million wasted licences and £1,200 PCs: welcome to government IT
    Mispam

    So what do you do when you can't boot into windows? Why can't I just hold Shift while I power up instead of having to boot into windows and click a...

    16 hours ago by Mispam on Windows 8 start-up speed forces USB boot workaround
    apexwm

    I've also seen that Mac OS X for Intel machines is supposed to run in VirtualBox, which would also be a nice solution. I've never tried it though.

    18 hours ago by apexwm on xTreme Triple Booting: Linux, Mac & Windows
    dave heasman

    What I wonder is why when companies are caught bang to rights in not providing contracted services, people bend over to smear the customers? Surely...

    18 hours ago by dave heasman on Virgin throttles broadband for high-speed customers
    pjc158

    Strange statement from HP regarding Mike Lynch and not capable of scaling a company. Autonomy was a $7bn purchase which started as a small company...

    19 hours ago by pjc158 on HP cuts 27,000 staff as Autonomy chief Lynch leaves
    lojolondon

    Or - possibly, they will destroy business by ensuring people do not invest where there is no return. Another socialist idea, well beyond it's...

    22 hours ago by lojolondon on Open Data Institute will act as biz incubator
    J.A. Watson

    Good stuff Jake, very interesting. Thanks. jw

    22 hours ago by J.A. Watson on xTreme Triple Booting: Linux, Mac & Windows
    openhgs

    "the cost of a second LCD screen is about the same as one day of an office worker's time, so this should soon be recouped in extra productivity."...

    24 hours ago by openhgs on Windows 8 could speed multi-monitor uptake
    Thomas Gellhaus

    I also installed the KDE version; I also will probably try out razorqt since I really haven't had a chance to before. I'm looking forward to the...

    1 day ago by Thomas Gellhaus via Facebook on Mageia 2 Released
    francisabigail

    Acquiring when reinvention/cannibalization is too challenging for a large organization can be an excellent strategy- still, so many mergers stumble...

    2 days ago by francisabigail on Ariba buy parks SAP on Oracle's cloud turf
    apexwm

    All of the feedback regarding using a touch monitor for a desktop PC is right on. Several months ago, we installed a "demo" multitouch all-in-one...

    2 days ago by apexwm on Windows 8 could speed multi-monitor uptake
    191706

    anyone wanting to triple boot *their* own Mac

    2 days ago by 191706 on xTreme Triple Booting: Linux, Mac & Windows
    SoapyTablet

    Cont.. Biggest Bugbear: Win7's stop-animate-go approach to work, you develop a staggered (not in the above alchohol sense of the word) approach to...

    2 days ago by SoapyTablet on Windows 8 could speed multi-monitor uptake