init
This commit is contained in:
commit
c257c13816
34
README
Normal file
34
README
Normal file
@ -0,0 +1,34 @@
|
||||
What is randrss?
|
||||
================
|
||||
Normal RSS readers usually fetch all feeds more or less at the same time
|
||||
at constant intervals. This leaves a signature for anyone who observes
|
||||
internet traffic. By looking for this pattern, you are more easily
|
||||
identified.
|
||||
|
||||
randrss fetches all your feeds at random intervals at an random order
|
||||
over a certain period of time. The feeds will be downloaded and all
|
||||
you need is a local webserver. The added benefits of this approach are
|
||||
that you don't have to worry about how your client deals with cookies
|
||||
etc.
|
||||
|
||||
Also, by having only one client fetching the feeds and your readers
|
||||
pointed to the randrss's downloaded feeds, you avoid certain trackers
|
||||
that may identify you across devices (google's feed proxy, cloudflare),
|
||||
because it's very likely that the combination of feeds you read are
|
||||
unique.
|
||||
|
||||
randrss fetches the feed using Tor.
|
||||
|
||||
Usage
|
||||
=====
|
||||
First, tweak the shellscript a bit, if you like
|
||||
The input file has the following format per line:
|
||||
url:output file:(optional paramater for the sleep time, in format x-y)
|
||||
|
||||
An optional user agent file contains the user agents we will randomly
|
||||
use per feed. One user agent per line.
|
||||
|
||||
randrss [input file] [user agent file]
|
||||
|
||||
|
||||
|
5
TODO
Normal file
5
TODO
Normal file
@ -0,0 +1,5 @@
|
||||
-cert pinning option
|
||||
-Causing more harm than good because do not match exactly the headers
|
||||
sent by the user agents we use.
|
||||
-how random is "shuf" and is it a problem?
|
||||
-update random default on every loop?
|
36
randrss
Executable file
36
randrss
Executable file
@ -0,0 +1,36 @@
|
||||
#!/bin/bash
|
||||
set -x
|
||||
set -e
|
||||
random_default=$( shuf -n 1 -i7200-7523)
|
||||
DEFAULT_PER_ITEM="1-$random_default"
|
||||
|
||||
echo "Current default sleep seconds range: $DEFAULT_PER_ITEM"
|
||||
if [ $# -lt 1 ] ; then
|
||||
echo "Usage: $0 [input feeds]"
|
||||
exit
|
||||
fi
|
||||
inputfile="$1"
|
||||
useragentsfile="$2"
|
||||
if [ ! -f "$inputfile" ] ; then
|
||||
echo "inputfile does not exist or is not readable"
|
||||
fi
|
||||
while true ; do
|
||||
shuf "$inputfile" | while read line ; do
|
||||
url=$( echo "$line" | cut -d":" -f1,2 )
|
||||
output=$( echo "$line" | cut -d":" -f3)
|
||||
range=$( echo "$line" | cut -d":" -f4)
|
||||
sleepfor=0
|
||||
if [ -n "$range" ] ; then
|
||||
sleepfor=$( shuf -i "$range" -n 1)
|
||||
else
|
||||
sleepfor=$( shuf -i "$DEFAULT_PER_ITEM" -n 1)
|
||||
fi
|
||||
useragent=""
|
||||
if [ -n "$useragentsfile" ] ; then
|
||||
useragent=$( shuffle -n 1 "$useragentsfile" )
|
||||
fi
|
||||
echo "Sleeping for $sleepfor seconds for $url"
|
||||
sleep "$sleepfor"
|
||||
torsocks wget "$url" -U "$useragent" -O "$output"
|
||||
done
|
||||
done
|
Loading…
Reference in New Issue
Block a user