Table of Contents

LimeSurvey Security Settings

Most GemsTracker installations use a LimeSurvey installation. LimeSurvey is a separate program and is fairly secure out of the box. As GemsTracker does not store user identifying information in LimeSurvey this is usually sufficient. However, some simple measures exist that make the installation more secure.

Global settings in LimeSurvey

These are LimeSurvey settings that you can set after logging in to the administration panel.

If your surveys do not use any JavaScript, set Filter HTML for XSS to Yes.

Always set Force HTTPS to On.

Settings in config.php

The file application/config/config.php is created during the LimeSurvey installation. The file returns an array with settings.

In addition to those settings you can add other features to extend protection in several key areas.

These settings are usually not documented on the LimeSurvey site, but LimeSurvey uses the Yii framework and these settings are used by YII.

A full example return array looks like this:

return array(
  'components' => array(
    'db' => array(
      'connectionString' => 'mysql:host=localhost;port=3306;dbname=example_ls_db;',
      'emulatePrepare' => true,
      'username' => 'example-ls-db',
      'password' => '12345',
      'charset' => 'utf8',
      'tablePrefix' => 'ls__',
    ),
    'request' => array(
      'enableCsrfValidation' => true,
      'hostInfo' => 'https://www.example.com/',  
      'csrfCookie' => array('domain' => 'www.example.com'),
    ),
    'session' => array (
      'cookieParams' => array(
        'secure' => true, // use SSL for cookies
        'httponly' => true, // Cookies may not be used by other protocols - experimental
        'domain' => 'www.example.com',
      ),
    ),
    'urlManager' => array(
      'urlFormat' => 'path',
      'rules' => array(
    ),
    'showScriptName' => true,
    ),
  ),
  'config'=>array(
    'debug'=>0,
    'debugsql'=>0, // Set this to 1 to enanble sql logging, only active when debug = 2
  )
);

Settings in .htaccess

Edit the file .htaccess in the LimeSurvey root directory and add this line to prevent frame based attacks:

Header append X-Frame-Options DENY