Designing for application security is designing for data validation
We probably don't talk enough about how good design pays off on multiple targets.
For example:
Security is often something that gets begrudging compliance, but well-designed security steps often intersect with good data validation.
The most talked about reason for input parameterization and protecting against SQL injection is "so that a malicious user doesn't pull a Bobby Tables on you."
The most legitimate real-world reason for input parameterization and anti-injection code is because "if no one can break it on purpose, then it's not going to break on accident because the AS/400 forwards you values with random semi-colons in them."
The 2nd most legitimate real-world reason is that poorly implemented dynamic SQL interferes with the predictability of your queries, so SQL server is likely going to give you better execution plans with effective parameters.
Chances are that implementing any good design feature will improve more things than the advertised reason for doing it.

Comments
Post a Comment