|
|||||||||||
|
Re: SQL Injection Basics
From: Alex Russell <alex(at)netWindows.org>
Date: Tue Feb 11 2003 - 20:56:05 EST -----BEGIN PGP SIGNED MESSAGE-----
On Wednesday 12 February 2003 04:29 pm, David Cameron wrote:
this is the case we are most interested in with webapps. > Communication between the layers takes the
to some extent, communicating failure or policy violation between layers is much less important than making sure that each "layer" can watch it's own back. > If you performed the checking in the first layer this would not be a
I don't think that's strictly necessaray is most webapps. Rather, each layer should only worry about threats that are going to affect THAT LAYER. Nothing else. If you implement filtering this way, you require that developers touch more sections of code (and obvious drawback), but you increase the survivability of any layer, and you reduce your depency on a single point of failure (say, doing all your filtering at one layer, and expecting to know everything that comes after it and the problems that can be exposed at those layers). I put togeather a short handout for a talk I gave not too long ago on the topic, perhaps it'll be useful? http://alex.netwindows.org/owasp/filters/owasp_filters_handout.pdf > In case you are wondering if there would be a situation where this might
taking boundary filtering to it's logical conclusion, one pretty much stops caring about communicating policy violations across boundaries, but instead starts carring about logging for later analysis. It's a tradeoff: have monolithic or synchronous filtering mechanisms that report everything that happens (and then require that those errors pass filtering at every stage) with the potential for much better error "bubbling", or take a "dumber is better" approach and worry about introspecting on failure modes only after each part of a system is locked down. So I'm taking the approach that it's much better to worry about integrity first, and let things fail "silently" across borders (but not be silent to a central logging facility), than it is to communicate state across boundaries, something that both increases complexity of the tools and requires that both sides of the boundary understand the error codes being transmitted (thereby making implementation of filtering more complex and less granular). But like I said, there are plenty of situations where this is sub-optimal. Doing it this way satisfies some needs I can see in webapps, but might not be as relevant for some types of apps.
iD8DBQE+Sam1oV0dQ6uSmkYRAkFnAJ0XGNdR7GbbECT+e6Lf7ODuVoZT+wCdH5vX
mizSufUoA9Y2YxQ+sJrJNMA=
This archive was generated by hypermail 2.1.8 : Wed Aug 23 2006 - 14:07:48 EDT |
||||||||||
|
|||||||||||