Beefy Boxes and Bandwidth Generously Provided by pair Networks
laziness, impatience, and hubris
 
PerlMonks  

An important distinction

by Wally Hartshorn (Hermit)
on Sep 11, 2002 at 15:46 UTC ( [id://196980]=note: print w/replies, xml ) Need Help??


in reply to Re: Re: how could i make "them" understand that security IS important ?
in thread how could i make "them" understand that security IS important ?

I think you either misunderstood the point that was being made ("never trust the client") or misstated what happened in your original post. You wrote:

The client i wrote was filtering inputs and was making sure that only the expected parameters were sent to the server.

As was stated earlier, you can't rely on the client to filter the inputs, so putting the filtering code back into the client won't solve the problem. The filtering needs to happen on the server. Otherwise, there's nothing to keep someone from writing their own client program to send whatever data to the server.

Also, the most damaging attack (in my opinion) is not one that destroys or obviously corrupts the data. That type of attack is noticed quickly and the data is soon restored from a backup. The most damaging attack is one that modifies the data in small ways: swapping the address of one company with that of another, randomly modifying balances, randomly creating bogus debits/credits, etc. By the time people notice something is wrong (such as when incorrect bills are sent to the wrong companies), you're faced with spending a huge amount of time fixing it. That means tracking down when the problems began, then either restoring the database from just before that point (which might mean blowing away nearly a month's worth of input) or examining each record to determine what is correct and what is not. Not to mention the hit to the company's reputation if they've sent Company A's bill to Company B.

Replies are listed 'Best First'.
Re: An important distinction
by iza (Monk) on Sep 12, 2002 at 08:48 UTC
    you're right. But i wanted to make it short, actually my "client" is a middleware (it intercepts requests from the client and (was filtering them and) forwards them to the server - actually, to a servlet). Data used to be filtered in the servlet, but as this "was slowering down the backend" (sic!) this had been removed, and put in some other object, deep in the code, and the "filtering" is done very late, and only on missing params - not on potentially harmfull chars. That's why i felt like *some* filtering had to be done, maybe not in the right place.
    And about the most damaging attack, i totally agree with you.

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://196980]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others having an uproarious good time at the Monastery: (4)
As of 2025-03-17 09:16 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?
    When you first encountered Perl, which feature amazed you the most?










    Results (54 votes). Check out past polls.