SlideShare a Scribd company logo
1 of 13
Securing Your ColdFusion Web Applications NVCFUG December 2010
HTTP Basic Authentication First HTTP authentication mechanism Easy to implement with .htaccess Highly unsecure mechanism Username and password sent in clear text for each request to the server Multiple brute-force applications are widely available to break HTTP Basic Authentication
Web Based Basic Authentication Uses HTML form to gather login information Easy to implement Highly unsecure mechanism Username and password sent in clear text
Secure Authentication Uses HTML form and Javascript Hash() to gather login information Easy to implement Slightly more secure mechanism Username sent in clear text (or MD5 hashed) Password sent as MD5 hash Hashed password protects password disclosure but can still be used to force authentication
Federated Secure Authentication Uses HTML form, random seed and Javascript Hash() to gather login information Forces a pre-authentication cookie and/or referrer data to ensure login from proper site Hashes the password with random seed Protects password hash from recovery Uses random session ID’s for each request Highly secure mechanism
Encryption Algorithms CFMX-COMPAT (default) Basically a Crypt() function Easy to decipher/break DES Very Basic Encryption Easy to decipher/break AES/DESEDE Basic Encryption Moderately difficult to decipher/break BLOWFISH Enhanced Encryption Very difficult to decipher/break
Encryption Encodings Base64 ASCII encoding Good choice for binary storage/transfer Requires URL encoding HEX HEX encoding Better choice for passing GET/POST data Requires no URL encoding UU  UUEncode – default CFML encoding A good choice for backwards compatibility with older applications and technologies
Advanced Encryption Java Cryptography Extensions Sun Unlimited Strength Jurisdiction Policy Files The Legion of the Bouncy Castle extensions Twofish, Skipjack, Serpent, S/MIME, HMAC-SHA1 encryptions MD2, MD4, RipeMDxxx, SHA-224 and Tiger hashes
Obfuscation Techniques Hash() One-way encryption MD5 SHA1 Implementation GET/POST of data FORM and URL parameter names Database table and column names
Maintaining State HTTP is a stateless protocol State maintains key data for each unique session Required for authentication mechanisms Randomizing state session ID’s Session (State) Management SESSION variables COOKIES
Built-In Routines CFML authentication framework Uses SESSION variables for state management OOP techniques easily implemented <cflogin> Defines code to execute for session login <cfloginuser> Defines user and role information for current session <cflogout> Logs a user out of the system IsUserInRole() Checks the user’s role(s) getAuthUser() Queries the user’s session information
Other Considerations Use email addresses as usernames Password generation, recovery and change management  Use multiple encryption algorithms for different areas of the application Use combined encryption algorithms for highly secure data storage Apply secure/federated authentication to non-form based interactions (e.g. Webservices, Flex/AIR RIA’s)
Putting It All Together The login form Username and password MD5 Javascript hash()ing with random seed The authenticator Compare user/pass with encrypted database entries The session manager Handesuser information from the authenticator Manages sessions and maintains state User management Change password Admin user management Password recovery

More Related Content

What's hot

Cm2 secure code_training_1day_data_protection
Cm2 secure code_training_1day_data_protectionCm2 secure code_training_1day_data_protection
Cm2 secure code_training_1day_data_protectiondcervigni
 
Powershell-hacking-1nTh35h311-BSidesTLV2019
Powershell-hacking-1nTh35h311-BSidesTLV2019Powershell-hacking-1nTh35h311-BSidesTLV2019
Powershell-hacking-1nTh35h311-BSidesTLV2019Yossi Sassi
 
[Cluj] CSP (Content Security Policy)
[Cluj] CSP (Content Security Policy)[Cluj] CSP (Content Security Policy)
[Cluj] CSP (Content Security Policy)OWASP EEE
 
HAcktive Directory - Microsoft Meetup July 2020
HAcktive Directory - Microsoft Meetup July 2020HAcktive Directory - Microsoft Meetup July 2020
HAcktive Directory - Microsoft Meetup July 2020Yossi Sassi
 
Applying Security Controls on REST APIs
Applying Security Controls on REST APIsApplying Security Controls on REST APIs
Applying Security Controls on REST APIsErick Belluci Tedeschi
 

What's hot (7)

MongoDB
MongoDBMongoDB
MongoDB
 
Cm2 secure code_training_1day_data_protection
Cm2 secure code_training_1day_data_protectionCm2 secure code_training_1day_data_protection
Cm2 secure code_training_1day_data_protection
 
Powershell-hacking-1nTh35h311-BSidesTLV2019
Powershell-hacking-1nTh35h311-BSidesTLV2019Powershell-hacking-1nTh35h311-BSidesTLV2019
Powershell-hacking-1nTh35h311-BSidesTLV2019
 
[Cluj] CSP (Content Security Policy)
[Cluj] CSP (Content Security Policy)[Cluj] CSP (Content Security Policy)
[Cluj] CSP (Content Security Policy)
 
Web proxy server
Web proxy serverWeb proxy server
Web proxy server
 
HAcktive Directory - Microsoft Meetup July 2020
HAcktive Directory - Microsoft Meetup July 2020HAcktive Directory - Microsoft Meetup July 2020
HAcktive Directory - Microsoft Meetup July 2020
 
Applying Security Controls on REST APIs
Applying Security Controls on REST APIsApplying Security Controls on REST APIs
Applying Security Controls on REST APIs
 

Similar to Securing Your Web Applications in ColdFusion

Pentesting web applications
Pentesting web applicationsPentesting web applications
Pentesting web applicationsSatish b
 
Super simple application security with Apache Shiro
Super simple application security with Apache ShiroSuper simple application security with Apache Shiro
Super simple application security with Apache ShiroMarakana Inc.
 
Owasp top 10_openwest_2019
Owasp top 10_openwest_2019Owasp top 10_openwest_2019
Owasp top 10_openwest_2019Sean Jackson
 
Secure Gate / Reverse Proxy - WAF 1ere génération / Datelec
Secure Gate / Reverse Proxy - WAF 1ere génération / DatelecSecure Gate / Reverse Proxy - WAF 1ere génération / Datelec
Secure Gate / Reverse Proxy - WAF 1ere génération / DatelecSylvain Maret
 
Rest API Security
Rest API SecurityRest API Security
Rest API SecurityStormpath
 
Web Exploitation Security
Web Exploitation SecurityWeb Exploitation Security
Web Exploitation SecurityAman Singh
 
Exploring the System.Net namespace
Exploring the System.Net namespaceExploring the System.Net namespace
Exploring the System.Net namespaceV Sanchez
 
Introduction to distributed security concepts and public key infrastructure m...
Introduction to distributed security concepts and public key infrastructure m...Introduction to distributed security concepts and public key infrastructure m...
Introduction to distributed security concepts and public key infrastructure m...Information Security Awareness Group
 
Bloombase StoreSafe Specifications
Bloombase StoreSafe SpecificationsBloombase StoreSafe Specifications
Bloombase StoreSafe SpecificationsBloombase
 
Application and Website Security -- Fundamental Edition
Application and Website Security -- Fundamental EditionApplication and Website Security -- Fundamental Edition
Application and Website Security -- Fundamental EditionDaniel Owens
 
Eyes Wide Shut: What Do Your Passwords Do When No One is Watching?
Eyes Wide Shut: What Do Your Passwords Do When No One is Watching?Eyes Wide Shut: What Do Your Passwords Do When No One is Watching?
Eyes Wide Shut: What Do Your Passwords Do When No One is Watching?BeyondTrust
 
Bloombase StoreSafe Specifications
Bloombase StoreSafe SpecificationsBloombase StoreSafe Specifications
Bloombase StoreSafe SpecificationsBloombase
 
Database security for PHP
Database security for PHPDatabase security for PHP
Database security for PHPRohan Faye
 

Similar to Securing Your Web Applications in ColdFusion (20)

Pentesting web applications
Pentesting web applicationsPentesting web applications
Pentesting web applications
 
S8-Session Managment
S8-Session ManagmentS8-Session Managment
S8-Session Managment
 
HTTP Basics
HTTP BasicsHTTP Basics
HTTP Basics
 
Web Security
Web SecurityWeb Security
Web Security
 
Demystifying REST
Demystifying RESTDemystifying REST
Demystifying REST
 
Super simple application security with Apache Shiro
Super simple application security with Apache ShiroSuper simple application security with Apache Shiro
Super simple application security with Apache Shiro
 
Owasp top 10_openwest_2019
Owasp top 10_openwest_2019Owasp top 10_openwest_2019
Owasp top 10_openwest_2019
 
Secure Gate / Reverse Proxy - WAF 1ere génération / Datelec
Secure Gate / Reverse Proxy - WAF 1ere génération / DatelecSecure Gate / Reverse Proxy - WAF 1ere génération / Datelec
Secure Gate / Reverse Proxy - WAF 1ere génération / Datelec
 
Rest API Security
Rest API SecurityRest API Security
Rest API Security
 
Web Exploitation Security
Web Exploitation SecurityWeb Exploitation Security
Web Exploitation Security
 
Exploring the System.Net namespace
Exploring the System.Net namespaceExploring the System.Net namespace
Exploring the System.Net namespace
 
Introduction to distributed security concepts and public key infrastructure m...
Introduction to distributed security concepts and public key infrastructure m...Introduction to distributed security concepts and public key infrastructure m...
Introduction to distributed security concepts and public key infrastructure m...
 
Bloombase StoreSafe Specifications
Bloombase StoreSafe SpecificationsBloombase StoreSafe Specifications
Bloombase StoreSafe Specifications
 
Application and Website Security -- Fundamental Edition
Application and Website Security -- Fundamental EditionApplication and Website Security -- Fundamental Edition
Application and Website Security -- Fundamental Edition
 
Eyes Wide Shut: What Do Your Passwords Do When No One is Watching?
Eyes Wide Shut: What Do Your Passwords Do When No One is Watching?Eyes Wide Shut: What Do Your Passwords Do When No One is Watching?
Eyes Wide Shut: What Do Your Passwords Do When No One is Watching?
 
Bloombase StoreSafe Specifications
Bloombase StoreSafe SpecificationsBloombase StoreSafe Specifications
Bloombase StoreSafe Specifications
 
Php web app security (eng)
Php web app security (eng)Php web app security (eng)
Php web app security (eng)
 
Database security for PHP
Database security for PHPDatabase security for PHP
Database security for PHP
 
HTTP
HTTPHTTP
HTTP
 
Session management
Session management  Session management
Session management
 

More from Denard Springle IV

More from Denard Springle IV (7)

Team CF Advance Introduction
Team CF Advance IntroductionTeam CF Advance Introduction
Team CF Advance Introduction
 
Touch Screen Desktop Applications
Touch Screen Desktop ApplicationsTouch Screen Desktop Applications
Touch Screen Desktop Applications
 
jQuery, CSS3 and ColdFusion
jQuery, CSS3 and ColdFusionjQuery, CSS3 and ColdFusion
jQuery, CSS3 and ColdFusion
 
Testing And Mxunit In ColdFusion
Testing And Mxunit In ColdFusionTesting And Mxunit In ColdFusion
Testing And Mxunit In ColdFusion
 
ColdFusion Coding Guidelines
ColdFusion Coding GuidelinesColdFusion Coding Guidelines
ColdFusion Coding Guidelines
 
ColdFusion ORM
ColdFusion ORMColdFusion ORM
ColdFusion ORM
 
Caching & Performance In Cold Fusion
Caching & Performance In Cold FusionCaching & Performance In Cold Fusion
Caching & Performance In Cold Fusion
 

Securing Your Web Applications in ColdFusion

  • 1. Securing Your ColdFusion Web Applications NVCFUG December 2010
  • 2. HTTP Basic Authentication First HTTP authentication mechanism Easy to implement with .htaccess Highly unsecure mechanism Username and password sent in clear text for each request to the server Multiple brute-force applications are widely available to break HTTP Basic Authentication
  • 3. Web Based Basic Authentication Uses HTML form to gather login information Easy to implement Highly unsecure mechanism Username and password sent in clear text
  • 4. Secure Authentication Uses HTML form and Javascript Hash() to gather login information Easy to implement Slightly more secure mechanism Username sent in clear text (or MD5 hashed) Password sent as MD5 hash Hashed password protects password disclosure but can still be used to force authentication
  • 5. Federated Secure Authentication Uses HTML form, random seed and Javascript Hash() to gather login information Forces a pre-authentication cookie and/or referrer data to ensure login from proper site Hashes the password with random seed Protects password hash from recovery Uses random session ID’s for each request Highly secure mechanism
  • 6. Encryption Algorithms CFMX-COMPAT (default) Basically a Crypt() function Easy to decipher/break DES Very Basic Encryption Easy to decipher/break AES/DESEDE Basic Encryption Moderately difficult to decipher/break BLOWFISH Enhanced Encryption Very difficult to decipher/break
  • 7. Encryption Encodings Base64 ASCII encoding Good choice for binary storage/transfer Requires URL encoding HEX HEX encoding Better choice for passing GET/POST data Requires no URL encoding UU UUEncode – default CFML encoding A good choice for backwards compatibility with older applications and technologies
  • 8. Advanced Encryption Java Cryptography Extensions Sun Unlimited Strength Jurisdiction Policy Files The Legion of the Bouncy Castle extensions Twofish, Skipjack, Serpent, S/MIME, HMAC-SHA1 encryptions MD2, MD4, RipeMDxxx, SHA-224 and Tiger hashes
  • 9. Obfuscation Techniques Hash() One-way encryption MD5 SHA1 Implementation GET/POST of data FORM and URL parameter names Database table and column names
  • 10. Maintaining State HTTP is a stateless protocol State maintains key data for each unique session Required for authentication mechanisms Randomizing state session ID’s Session (State) Management SESSION variables COOKIES
  • 11. Built-In Routines CFML authentication framework Uses SESSION variables for state management OOP techniques easily implemented <cflogin> Defines code to execute for session login <cfloginuser> Defines user and role information for current session <cflogout> Logs a user out of the system IsUserInRole() Checks the user’s role(s) getAuthUser() Queries the user’s session information
  • 12. Other Considerations Use email addresses as usernames Password generation, recovery and change management Use multiple encryption algorithms for different areas of the application Use combined encryption algorithms for highly secure data storage Apply secure/federated authentication to non-form based interactions (e.g. Webservices, Flex/AIR RIA’s)
  • 13. Putting It All Together The login form Username and password MD5 Javascript hash()ing with random seed The authenticator Compare user/pass with encrypted database entries The session manager Handesuser information from the authenticator Manages sessions and maintains state User management Change password Admin user management Password recovery