How to handle input and parameter validation between layers?
<p>If I have a 3 layer web forms application that takes user input, I know I can validate that input using validation controls in the presentation layer.  Should I also validate in the business and data layers as well to protect against SQL injection and also issues?  What validations should go in each layer?</p>

<p>Another example would be passing a ID to return a record.  Should the data layer ensure that the id is valid or should that happen in BLL / UI?</p>
