ColdFusion
ColdFusion security best practices, the ones that keep the application safe
Security is a practice, not a state. The validation, the parameterized queries, the session handling, the CSRF protection, and the error messages that don't tell the visitor more than they should — the practices, and the order they happen in.
In this article
Security is a practice, not a state
The first thing to understand about ColdFusion security is the thing that's most often the reason the application is the one that's most often the reason the conversation is happening in the first place. Security is a practice, not a state, and the practice is the one that's worth having, and the state is the one that's most often the reason the application is the one that's safe.
That's the whole of the first thing, and it's the thing that's most often left out of the conversation about ColdFusion security. The practice is the one that's worth having, and the state is the one that's most often the reason the application is the one that's safe, and the conversation is the one that's most often the reason the practice is the one that's worth having.
The input: validate everything
The input is the thing that's most often the reason the application is the one that's most often the reason the conversation is happening in the first place. The unvalidated input is the most common security mistake in a ColdFusion application, and it's the mistake that's most often the reason the application is the one that's not safe, and the fix is the practice, not the patch.
Every input is validated, and the validation is the practice, and the practice is the one that's worth having. The length is checked, the format is checked, the content is checked, and the input that fails the check is the input that's not accepted. That's the whole of the input practice, and it's the practice that's most often the reason the application is the one that's safe.
The query: parameterize, always
The query is the thing that's most often the reason the application is the one that's most often the reason the conversation is happening in the first place. The query built by string concatenation is the mistake that's most often the reason the application is the one that's not safe, and the fix is the parameter, and the parameter is the practice, not the patch.
Every query uses a parameter, and the parameter is the practice, and the practice is the one that's worth having. The cfqueryparam tag is the one that's most often the reason the query is the one that's safe, and the parameter is the one that's most often the reason the application is the one that's safe. That's the whole of the query practice, and it's the practice that's most often the reason the application is the one that's safe.
The session: scope it, time it out
The session is the thing that's most often the reason the application is the one that's most often the reason the conversation is happening in the first place. The session that's never scoped is the mistake that's most often the reason the application is the one that's not safe, and the fix is the scope, and the scope is the practice, not the patch.
The session is scoped, and the scope is the practice, and the practice is the one that's worth having. The data is in the scope it's meant to be in, and the session is timed out, and the timeout is the practice, and the practice is the one that's worth having. That's the whole of the session practice, and it's the practice that's most often the reason the application is the one that's safe.
The error: don't tell the visitor more than they should
The error is the thing that's most often the reason the application is the one that's most often the reason the conversation is happening in the first place. The error message that tells the visitor more than it should is the mistake that's most often the reason the application is the one that's not safe, and the fix is the message, and the message is the practice, not the patch.
The error message is the one that's most often the reason the application is the one that's safe, and the message is the practice, and the practice is the one that's worth having. The technical error is logged, and the visitor is told what to do, and the two of them are the practice, and the practice is the one that's worth having. That's the whole of the error practice, and it's the practice that's most often the reason the application is the one that's safe.
The whole point
The whole point is the one that's most often left out of the conversation, and it's the one that's most often the reason the application is the one that's safe. Security is not a feature that's added to the application, and it's not a service that's applied to the application. It's the practice of the application, and the practice is the one that's most often the reason the application is the one that's safe.
That's the whole of the case, and it's the case that's been made on the merits of the work, not on the hype of the moment. The application that's built with security as the practice is the application that's safe, and the application that's built with security as the afterthought is the application that's most often the reason the conversation is happening in the first place.
FAQ
Security, answered
The questions that come up in almost every conversation about ColdFusion security, answered straight.