A PHP Error was encountered

Severity: Notice

Message: Only variable references should be returned by reference

Filename: core/Common.php

Line Number: 257

Civil Rights Captcha

You are human.
That was not the humane answer.
Try again
(or use Googles reCAPTCHA.)
What is the Civil Rights CAPTCHA?
View a live example of the CAPTCHA here.
View a live example of the CAPTCHA in swedish here.

A CAPTCHA is a test to tell wether a user is human or a computer. They mostly come in the form of distorted letters at the end of comments on news sites, blogs or in registration forms. Their main function is to prevent abuse from "bots" or automated programs written to generate spam. Civil Rights CAPTCHA is unique in its approach at separating humans from bots, namely by using human emotion. This enables a simpler and more effective way of keeping sites spam free as well as taking a stand for human rights.

With over 200 million CAPTCHAs being solved everyday, we hope that by catching a tiny amount of those interactions we can help promote and empower our partners - brave human rights defenders, who often put themselves at great risk through their engagement for other people’s rights.

The application has been developed by the organization Civil Rights Defenders who's purpose is to work with local organisations in longterm partnerships, striving to be present in countries and regions where human rights are least respected. To achieve change we target several levels in society:
  • We monitor the state authorities and demand accountability, justice and reparations when people's human rights have been violated.
  • We inform the public so they claim their fundamental rights and freedoms.
  • We empower individual human rights defenders and - organisations by providing expertise, training and support.
+ About the Emotions & Scenarios in the CAPTCHA
Most of the situations brought up in the captcha (all the negative ones) are based on real events where the United Nations Universal Declaration of Human Rights has been breached. There is no content related to our work in the Captcha which is based on our subjective and personal values.

You can read more about the Universal Declaration of Human Rights here.
+ How does the Civil Rights CAPTCHA work?
Instead of visually decoding an image of distorted letters, the user has to take a stand regarding facts about human rights. Depending on whether the described situation is positively or negatively charged, the CAPTHA generates three random words from a database. These words describe positive and negative emotions. The user selects the word that best matches how they feel about the situation, and writes the word in the CAPTCHA. Only one answer is correct, the answer showing compassion and empathy.
+ Frequently asked questions
If you have any questions send them to captcha@civilrightsdefenders.org
  • Will the captcha be maintained?
    The captcha is a permanent installation. The idea is to continually develop the platform (security & compatability) as well as updating it with current human rights issues or perhaps making different versions for different "question areas". We hope to eventually have a community of developers working on its development.

  • How long will it be maintained?
    Until it becomes obsolete. There is only one reason to stop maintaining it - if no one uses it.

  • How large is the current data set, and do you plan on adding more data to it over time?
    The statements will change over time, both to update to current events, as well as improving the security of the captcha. Work will also be done to minimize the possibility of automated sentiment analysis. The limitations of using only emotions for the correct answers are also under consideration. However, at the present, the data-set is still large enough to meet the recommendations of well-proven open-source solutions.
Start using the Civil Rights CAPTCHA
Welcome to the developer documentation for Civil Rights CAPTCHA. Here we will explain how to add the captcha to your site. There are two ways to use the captcha on your site: (A) using a library, or (B) writing the code to communicate with our servers.

PHP library development is moved to GitHub.

New design of the CAPTCHA wiki.

A. Libraries & plugins
If you have any questions or would like to contribute don't hesitate to contact captcha@civilrightsdefenders.org
2013 Civil Rights Defenders - www.civilrightsdefenders.org

Quick start with the PHP library
Using a library is the simplest way to add the Civil Rights CAPTCHA to your site.

You can view and download the latest version here.

The package includes the library and an example page to demonstrate how to use it. The Civil Rights CAPTCHA depends on the javascript library jQuery.

Language support: Currently only english (en) and swedish (sv) are supported.

Step 1: Displaying the CAPTCHA
To display the captcha in your html form, simply echo the show() function at the place in the <form> where you want the CAPTCHA to display:
				$crccaptcha = new civilrightscaptcha();
				//To set language use (Sets to Swedish, default is english): 
				echo $crccaptcha->show();

A form with the CAPTCHA could look something like this:
				  	<script src='http://code.jquery.com/jquery-latest.min.js' type='text/javascript'></script>
				      <!-- your HTML content -->

				      <form method="post" action="verify.php">
				      	<!-- your form inputs -->
							$crccaptcha = new civilrightscaptcha();
							echo $crccaptcha->show();
				        <input type="submit" />

				      <!-- more of your HTML content -->

Notice that the require_once() expects the library file to be in the same catalog as your script. If it is not, you must link approperiately. The jquery library must be included for the captcha to function!

Step 2: Verifying the entered answer
After the form has been submitted to your form-proccessing-php-file, you must verify that the user entered the correct answer:
				$crccaptcha = new civilrightscaptcha();
				if($crccaptcha->check($_POST['crc_captcha'], $_POST['crc_sessid'])) {
					//Your code if the user entered the correct answer!
				else {
					//Your code if the user entered the wrong answer!

When the user submits the form, two fields (crc_captcha & crc_sessid) are also submitted from the CAPTCHA. Both these have to be used as parameters to the check function. The check function returns a boolean TRUE if the answer is correct and FALSE if it is not.

Using Civil Rights CAPTCHA without a library

The Civil Rights CAPTCHA is serviced by a http API that can be reached from any programming environment.

Step 1: Displaying the captcha
The captcha can be reached by HTTP GET request to http://captcha.civilrightsdefenders.org/captchaAPI/ .

To change language you can send optional parameter: lang=COUNTRY_CODE.

Step 2: Verifying the enter answer
To verify users answer do a
HTTP POST request to http://captcha.civilrightsdefenders.org/captchaAPI/
(port 80)
with parameters:
{ code: POST_FROM_FORM['crc_captcha'] }
and including the POST_FROM_FORM['crc_sessid'] as a PHPSESSID Cookie in the header, like:
"Cookie: PHPSESSID=POST_FROM_FORM['crc_sessid']"

The header of the request should look something like this:

POST /captchaAPI/ HTTP/1.1
Host: civilrightsdefenders.org
Content-Type: application/x-www-form-urlencoded
Content-Length: YOUR-DATA-LENGTH
User-Agent: CAPTCHA/own
Cookie: PHPSESSID=POST_FROM_FORM['crc_sessid']

For questions, problems, and bugs don't hesitate to contact captcha@civilrightsdefenders.org
Using the ColdFusion library
The ColdFusion library is made available thanks to Rupert Rawnsley.

You can download the latest version here.

The package includes the library and an example page to demonstrate how to use it. The Civil Rights CAPTCHA depends on the javascript library jQuery.

Language support: Currently only english (en) and swedish (sv) are supported.

Displaying and verifying
Use the example in the download of the library as a reference of use.