Blogs

Submitting Content Securely

In order to respond to a top priority need - assuring the information provided on line by a patient is submitted and stored securely, HCA sponsored the development of what is called the "Secure Form" plugin.

This plugin, based on the dotCMS Form Handler functionality, adds the capability to encrypt the information submitted by a end user over a SSH connection and then transfer that information from a public dotCMS instance available for internet users to a private dotCMS instance accessed only from a private network.

From left to right and bottom to top in the picture: Yun Huang, Allison Page, Sasha Pickett, Diane Tomlins, Brian Traughber, and Aaron Clifford. They are part of the team that designed, installed, and tested the Secure Form Platform at HCA.

The process to submit forms securely works like this:

1. The form is created and added to a page in the exact same way it is currently done when using the Form Handler Functionality

On those dotCMS instances where the Secure Form plugin has been installed, a set of default fields, additional to those created by dotCMS, will be automatically added to a form structure:

  • Form Submit Date stores the date and time when the form was submitted by the end user. This field will not be displayed in the front end for the user to set a value.
  • Email stores the email address of the person submitting the form.
  • Confirmation Title, Confirmation Message, and Confirmation From Email allow to configure the subject, content, and from email address of a notification email that will be sent to the users submitting the form letting them know their information has been received. These fields will not be displayed in the front end for the user to set a value.
  • Secure Form ID is a unique identifier for each form instance submitted. This field will not be displayed in the front end for the user to set a value.
  • Disclaimer is a special custom field that, when kept in the form, allows the disclaimer policy information to be displayed and forces the user to accept before submitting the information.

2. The user accesses the page where the form has been published in the public instance

The form is added to the page in the public instance using the "Add Form" link in dotCMS Page Editor.

3. The information is submitted to the public instance and stored encrypted into a special Form Structure

The information submitted by the user will be stored encrypted in the public instance.

4. The private instance pulls the information temporarily stored in the public instance

A Quartz job is executed by the private instance to request the transfer of the information from the public server. The frequency to execute this job can be configured at your convenience in the configuration file of the Secure Form plugin.
The example shown below executes the Qartz job every minute:

##Quartz Job Properties
quartz.job.name=Secure Forms Job
quartz.job.group=Secure Forms Job
quartz.job.description=Secure Forms Job
quartz.job.java.classname=com.dotcms.plugins.secureform.client.business.SecureFormsJob
quartz.job.cron.expression=0 0/1 * * * ?

5. The information is decrypted and stored in the private instance

Once the information has been transferred to the private instance, it is decrypted and stored to be accessed by users from a secure network.

6. The information is deleted from the public instance

The same Quartz job in charge of transferring the information also makes sure that the information is deleted from the public instance once it has been stored in the private instance.

In conclusion, the Secure Form plugin extends the Form Handler functionality to allow encryption and storage of the information submitted from any device in the internet to a dotCMS secure instance.

September 05, 2012

Filed Under:

plugin secure forms

Recommended Reading

Benefits of a Multi-Tenant CMS and Why Global Brands Need to Consolidate

Maintaining or achieving a global presence requires effective use of resources, time and money. Single-tenant CMS solutions were once the go-to choices for enterprises to reach out to different market...

Headless CMS vs Hybrid CMS: How dotCMS Goes Beyond Headless

What’s the difference between a headless CMS and a hybrid CMS, and which one is best suited for an enterprise?

14 Benefits of Cloud Computing and Terminology Glossary to Get You Started

What is cloud computing, and what benefits does the cloud bring to brands who are entering into the IoT era?