ooni.nettests experimental Package

ooni.nettests.experimental.chinatrigger Module

ooni.nettests.experimental.domclass_collector Module

ooni.nettests.experimental.http_keyword_filtering Module

class ooni.nettests.experimental.http_keyword_filtering.HTTPKeywordFiltering[source]

Bases: ooni.templates.httpt.HTTPTest

This test involves performing HTTP requests containing to be tested for censorship keywords.

It does not detect censorship on the client, but just logs the response from the HTTP backend server.

author = 'Arturo Filast\xc3\xb2'
inputFile = ['file', 'f', None, 'List of keywords to use for censorship testing']
name = 'HTTP Keyword Filtering'
requiredOptions = ['backend']
requiresRoot = False
requiresTor = False
test_get()[source]

Perform a HTTP GET request to the backend containing the keyword to be tested inside of the request body.

test_post()[source]

Perform a HTTP POST request to the backend containing the keyword to be tested inside of the request body.

usageOptions

alias of UsageOptions

version = '0.1.1'
class ooni.nettests.experimental.http_keyword_filtering.UsageOptions[source]

Bases: twisted.python.usage.Options

optParameters = [['backend', 'b', 'http://127.0.0.1:57001', 'URL of the test backend to use']]

ooni.nettests.experimental.http_uk_mobile_networks Module

class ooni.nettests.experimental.http_uk_mobile_networks.HTTPUKMobileNetworksTest[source]

Bases: ooni.templates.httpt.HTTPTest

This test was thought of by Open Rights Group and implemented with the purpose of detecting censorship in the UK. For more details on this test see: https://trac.torproject.org/projects/tor/ticket/6437 XXX port the knowledge from the trac ticket into this test docstring

followRedirects = True
inputFile = ['urls', 'f', None, 'List of urls one per line to test for censorship']
name = 'HTTP UK mobile network redirect test'
processRedirect(location)[source]
requiredOptions = ['urls']
requiresRoot = False
requiresTor = False
testPattern(value, pattern, type)[source]
testPatterns(patterns, location)[source]
testRules(rules, location)[source]
usageOptions

alias of UsageOptions

class ooni.nettests.experimental.http_uk_mobile_networks.UsageOptions[source]

Bases: twisted.python.usage.Options

See https://github.com/hellais/ooni-inputs/processed/uk_mobile_networks_redirects.yaml to see how the rules file should look like.

optParameters = [['rules', 'y', None, 'Specify the redirect rules file ']]

ooni.nettests.experimental.keyword_filtering Module

ooni.nettests.experimental.parasitictraceroute Module

ooni.nettests.experimental.squid Module

class ooni.nettests.experimental.squid.SquidTest[source]

Bases: ooni.templates.httpt.HTTPTest

This test aims at detecting the presence of a squid based transparent HTTP proxy. It also tries to detect the version number.

author = 'Arturo Filast\xc3\xb2'
inputs = ['http://google.com']
name = 'Squid test'
optParameters = [['backend', 'b', 'http://ooni.nu/test/', 'Test backend to use']]
requiresRoot = False
requiresTor = False
test_cacheobject()[source]

This detects the presence of a squid transparent HTTP proxy by sending a request for cache_object://localhost/info.

The response to this request will usually also contain the squid version number.

test_search_bad_request()[source]

Attempts to perform a request with a random invalid HTTP method.

If we are being MITMed by a Transparent Squid HTTP proxy we will get back a response containing the X-Squid-Error header.

test_squid_headers()[source]

Detects the presence of a squid transparent HTTP proxy based on the response headers it adds to the responses to requests.

version = '0.1'