Move hardcoded user agents to user-agents.json

This commit is contained in:
syeopite 2021-07-16 22:44:24 -07:00
parent 5af594bf0f
commit 71ec829c33
No known key found for this signature in database
GPG key ID: 6FA616E5A5294A82
2 changed files with 17 additions and 20 deletions

14
config/user-agents.json Normal file
View file

@ -0,0 +1,14 @@
{
"safari": {
"os": ["Macintosh; Intel Mac OS X 10_15_7", "Macintosh; Intel Mac OS X 10_15_6",
"Macintosh; Intel Mac OS X 11_3", ""],
"versions": ["14.1.1", "14.1", "14.0.3"]
},
"firefox": {
"os": ["Macintosh; Intel Mac OS X 10.15'", "Macintosh; Intel Mac OS X 10.14",
"Windows NT 10.0; Win64; x64", "X11; Ubuntu; Linux x86_64",
"X11; Linux x86_64", "Windows NT 10.0", "Macintosh; Intel Mac OS X 11.3"],
"versions": ["88.0 ", "89.0", "90.0", "78.0"]
}
}

View file

@ -1,26 +1,9 @@
# Using different browsers would allow us to disguise our traffic even more. AGENT_COMPONENTS = JSON.parse(File.read("config/user-agents.json")).as_h
# However, due to the widely different version and operating system values as well as
# their frequency on different OSes we're going to need a separate dataset
# for everything.
AGENT_COMPONENTS = {
"safari" => {
"os" => ["Macintosh; Intel Mac OS X 10_15_7", "Macintosh; Intel Mac OS X 10_15_6"],
"versions" => ["14.1.1", "14.1", "14.0.3"],
},
"firefox" => {
"os" => ["Macintosh; Intel Mac OS X 10.15'", "Macintosh; Intel Mac OS X 10.14",
"Windows NT 10.0; Win64; x64", "X11; Ubuntu; Linux x86_64",
"X11; Linux x86_64"],
"versions" => ["88.0 ", "89.0"],
},
}
private def generate_user_agent private def generate_user_agent
agent_component = AGENT_COMPONENTS.keys.sample(1)[0] agent_component = AGENT_COMPONENTS.keys.sample(1)[0]
os = AGENT_COMPONENTS[agent_component]["os"].sample(1)[0] os = AGENT_COMPONENTS[agent_component]["os"].as_a.sample(1)[0]
version = AGENT_COMPONENTS[agent_component]["versions"].sample(1)[0] version = AGENT_COMPONENTS[agent_component]["versions"].as_a.sample(1)[0]
base = "Mozilla/5.0 " base = "Mozilla/5.0 "
case agent_component case agent_component