5

Some forms may contain confidential information - even something basic like where a person lives.

What measures do Cognito Forms take to ensure that data stored within its site is secure?

4

EDIT: Cognito Forms now supports full encryption of all entry data and uploaded files at rest. Furthermore, you can mark sensitive fields as protected to ensure they are not inadvertently transmitted insecurely, such as through email notifications or insecure redirects/webhooks.

Learn more about Cognito Forms security at: https://www.cognitoforms.com/support/74/entries/data-security


Excellent question! I am a developer for Cognito Forms and am glad to answer this.

First, we need to document this as a separate page in our help documentation to make this very clear, but we do discuss our security a bit at the bottom of the How to Setup Payment page. To expand upon this, here is what we do to protect the security of our customer's data:

  1. Cognito Forms is always accessed over HTTPS 100% of the time for all users.

  2. Cognito Forms is hosted securely on the Microsoft Azure cloud platform, which is PCI (DSS) Level 1 AND HIPAA compliant, and we have a HIPAA BAA with Microsoft.

  3. Access to our production environment is limited to two individuals, requiring two-factor authentication to deploy updates or access a secure system for limited troubleshooting.

  4. We do not look at entry data for our customers unless requested to through an official support request. The details of our concern over data privacy are detailed in the Cognito Privacy Policy.

  5. Customer data is carefully segregated at the lowest architectural level in Cognito Forms to ensure that data for one organization cannot be accessed by another.

  6. We partner with Stripe for credit card processing so that secure payment information is never transmitted or stored by Cognito Forms. We also take measures to prevent malicious scripts on sites we are embedded in from stealing this information.

  7. The Cognito Forms architecture is unique and highly specialized for massive scale while maintaining data isolation. It does not use transitional databases and is not vulnerable to SQL injection attacks.

  8. Production access credentials for storage and encryption tokens used to encrypt sensitive organization data are stored in an Azure credential store and are not stored within our own development environments.

  9. Finally, all text data stored by Cognito Forms is sanitized to prevent JavaScript injection attacks, which someone might attempt to leverage by submitting JavaScript as entry data to maliciously access other entry data by compromising our customers browsers when managing entries.

What we have not done yet, but plan to, is to allow our customers to indicate that a form, or portions of a form, contain sensitive data that must be treated as carefully as possible, such as HIPAA, PCI, or PII data. We could easily support encrypting the data, but this feature must and will go further to ensure this sensitive data is never emailed or otherwise transmitted in an insecure way (ie, we will help our customers ensure the data is protected). Since this is not yet in place, we discourage the storing of sensitive information that should be encrypted at rest, such as Social Security and driver's license numbers, medical patient data (HIPAA), etc.

As you can see, we have definitely thought a lot about the security of Cognito Forms. At the same time, we know that there are constant threats and we need to continue to refine our processes to ensure the safety of our customer's data in Cognito Forms.

  • I edited the original answer to reflect that encryption and data protection is now built into Cognito Forms. However, I did not modify the original answer to provide a historical context. This answer is now part of our documentation in Cognito Forms. – Jamie Thomas Aug 20 '15 at 15:20

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.