View Issue Details

This bug affects 1 person(s).
 4
IDProjectCategoryView StatusLast Update
10698Bug reportsOtherpublic2020-03-13 18:46
Reporterdapster105 Assigned To 
PrioritynormalSeverityminor 
Status closedResolutionopen 
Product Version2.06+ 
Summary10698: Survey start page load incorrectly recorded as a 'partial complete' in the database when SGQA url parameter is specified
Description

We have noticed that since we upgraded limesurvey from 1.92 to 2.06, the number of 'incomplete' responses we get seems to have increased significantly.

We have traced this to a change in behaviour of the system which is causing problems.

When a survey is accessed via a normal url with the surveyid, the Welcome screen loads and a record is not written to the database until the respondent clicks the button to begin the survey.

However, if a respondent accesses a survey via a link where there is an answer pre-populated on the URL via an SGQA parameter, limesurvey seems to create a database record immediately.

This is a problem because these 'incomplete' survey records can be generated in high volumes by bots following links like this that are posted online into forums or on websites etc.

The 'bots' are simply trawling and following links to index (or do whatever they do) the pages but in doing so they generate what appear to be 'incomplete' survey responses.

This can skew the apparent 'completion rate' of the survey and can consume unnecessary database resources.

I think the initial database write should not happen until at least the Welcome page (if there is one) has been displayed.

There is also a potential ethical problem here if limesurvey is capturing information (which may included ip address, refererurl etc.) before the respondent has been able to review any privacy terms that may be set out on the front page.

Steps To Reproduce

Create a simple survey with one short-text question.
Switch the survey live. Make sure the option to "Show Welcome Page" is ON.
Create a url which pre-populates the short-text question using the SGQA code.

e.g. http://..../index.php?r=survey/index&sid=243276&lang=en&243276X1010X24046=some%20text

Open the link in a clean browser.
A response record is immediately created in the database, despite the respondent (or bot) not yet having decided to begin, or consenting to any privacy terms etc.

TagsNo tags attached.
Attached Files
Bug heat4
Complete LimeSurvey version number (& build)160129
I will donate to the project if issue is resolvedYes
BrowserChrome
Database type & versionMySQL 5.3
Server OS (if known)Windows Server 2008
Webserver software & version (if known)IIS 7
PHP Version5.3.19

Users monitoring this issue

There are no users monitoring this issue.

Activities

c_schmitz

c_schmitz

2016-03-07 12:17

administrator   ~36056

Unfortunately this cannot be easily resolved. It would require refactoring quite some code of the survey entry which currently has a low priority.

dapster105

dapster105

2016-03-07 12:31

reporter   ~36060

Understood.
We have added a robots.txt to the root of the install which we hope will reduce the size of the problem in the first place. Perhaps worth including in the default install?
Perhaps there is a 'cleanup' solution that could be integrated into the way sessions are closed / ended?
We note that for these 'ghost' responses, lastpage = -1 in the database.
Just a thought.

c_schmitz

c_schmitz

2020-03-13 18:46

administrator   ~56469

This version of LimeSurvey is not longer supported. Please check so that the issue is fixed in a more recent version of LimeSurvey. If it's not, please reopen this bug report. Thank you.

Issue History

Date Modified Username Field Change
2016-03-07 11:28 dapster105 New Issue
2016-03-07 11:28 dapster105 File Added: limesurvey_survey_243276.lss
2016-03-07 12:17 c_schmitz Note Added: 36056
2016-03-07 12:17 c_schmitz Status new => acknowledged
2016-03-07 12:31 dapster105 Note Added: 36060
2019-09-23 12:18 c_schmitz Status acknowledged => confirmed
2020-03-13 18:46 c_schmitz Note Added: 56469
2020-03-13 18:46 c_schmitz Status confirmed => closed