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

    kevinmchapman

    "the very significant number of users" and "many (most) of us" - you have no evidence for these statements. It is a fact that most users are saying...

    7 hours ago by kevinmchapman on A tale of two distros: Ubuntu and Linux Mint
    Marg Menzies Harrison

    Another grammar faux pas is the improper use of "you". When sitting down down in a restaurant, for example, I get cringe when the waitress...

    9 hours ago by Marg Menzies Harrison via Facebook on 10 flagrant grammar mistakes that make you look stupid
    zdnetukuser

    And NOW, folks, for Canonical's next trick... Kubuntu is late. Here's a pencil. Draw your own conclusions. cf.:...

    10 hours ago by zdnetukuser on Linux Minterface
    Moley

    @kevinmchapman. The discussion here reflects the very significant number of users who really do like the traditional menu system and who wish to...

    11 hours ago by Moley on A tale of two distros: Ubuntu and Linux Mint
    kevinmchapman

    Er, no... It is an efficient means of finding the application/file/setting you need in one place. The icons are a simply a fallback for when you...

    13 hours ago by kevinmchapman on A tale of two distros: Ubuntu and Linux Mint
    TerryRK

    Isn't the provision of a text based search an admission by the developers that the mass of icons approach does not work? I don't need to use a...

    14 hours ago by TerryRK on A tale of two distros: Ubuntu and Linux Mint
    kevinmchapman

    "Unity and GNOME 3 both abandon the old text-based cascading menus in favour of a graphical icon-driven system." Point truly missed. Both use a...

    15 hours ago by kevinmchapman on A tale of two distros: Ubuntu and Linux Mint
    TerryRK

    whs001 - Thank you, I'm glad you liked the article. I absolutely agree with you on your first point. I should perhaps have made it clearer that...

    15 hours ago by TerryRK on A tale of two distros: Ubuntu and Linux Mint
    Dennis Nilsson

    If we allow corporate interest to dictate the way our government circumvents due process against foreign entities then we should accept the same...

    16 hours ago by Dennis Nilsson via Facebook on ACTA stumbles in Germany
    GHar123

    I totally dislike pirating of works, I fear that artists will be deterred from creating works if they think that they are going to get ripped off....

    18 hours ago by GHar123 on ACTA stumbles in Germany
    JCB33

    How dare film makers, artists or anybody that invests in creativity stop us pirating their works for free. I want to be able to walk into my local...

    23 hours ago by JCB33 on ACTA stumbles in Germany
    Moley

    @GrueMaster. I prefer horses for courses rather than one size fits all. I, and I suspect most other computer users, do not really wish to have...

    1 day ago by Moley on A tale of two distros: Ubuntu and Linux Mint
    greycynic

    The product that scares me every time I have to use it is the Office 2007 version of Excel. The first bug that I found was applying the median...

    1 day ago by greycynic on Ten flawed products that derail productivity
    GrueMaster

    Nice review and very informative. One thing I'd like to add (in reply to whs001's 1st question), the main reason to have the same interface from...

    1 day ago by GrueMaster on A tale of two distros: Ubuntu and Linux Mint
    Frederick Wrigley

    I'be been using Mint 12 since the RC came out, and I am far more happy with the Cinnamon, the Mate, and, yes (with extensions), theGnome 3...

    1 day ago by Frederick Wrigley via Facebook on A tale of two distros: Ubuntu and Linux Mint
    bdantas

    Excellent article. One small correction, though--although a fresh installation of Linux Mint 12 will, indeed, provide the user with a version of...

    1 day ago by bdantas on A tale of two distros: Ubuntu and Linux Mint
    Alan Ralph

    In related news, the ISPs club together to get the members of the Home Affairs Select Committee (ya goofed on that part, ZDNet UK) copies of "The...

    1 day ago by Alan Ralph via Facebook on MPs urge ISPs to take down terrorist material
    Alan Ralph

    In related news, the ISPs club together to get the members of the Home Affairs Select Committee (ya goofed on that part, ZDNet UK) copies of "The...

    1 day ago by Alan Ralph via Facebook on MPs urge ISPs to take down terrorist material
    Moley

    For Gnome 2 die-hards, it is possible to add icons to the bottom panel (or top top panel, if you prefer) which provide the exact Gnome 2...

    1 day ago by Moley on A tale of two distros: Ubuntu and Linux Mint
    ramwellian

    Your comments would seem pretty naive and immature. Your 'solution' appears to be, "gee, let's all just give in to the hackers and give them...

    1 day ago by ramwellian on Cloud computing security: no more oxymoron?