legitbot 1.2.0 → 1.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/README.md +2 -1
- data/lib/legitbot.rb +1 -0
- data/lib/legitbot/petalbot.rb +10 -0
- data/lib/legitbot/version.rb +1 -1
- data/test/petalbot_test.rb +52 -0
- metadata +6 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d709839505242be7ed07c5f6413e607bd8eb127a011765b9f45c1a3e0bba2fbb
|
4
|
+
data.tar.gz: 53a19413068473299ce78887756a2ef50f59859e54d652e4314755178a30028c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: daaf7bbde5fae2ab3937b5e4f4cd936a61f54b80d5ec87eaca8db473977f633c993f267f6aeb101b94404119e58835878ee1433683cf613b476c6fc7f27b34b3
|
7
|
+
data.tar.gz: 1e51fe4ee02eb14bb0a95230e2ca3d4716a56cee199a40f3cfcd4d0999158526f151fa7915a9a3f0a21a9054ebc3862353e1a68a89057c2cf8bbcac4d082afb8
|
data/README.md
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
# Legitbot 
|
1
|
+
# Legitbot  
|
2
2
|
|
3
3
|
Ruby gem to check that an IP belongs to a bot, typically a search
|
4
4
|
engine. This can be of help in protecting a web site from fake search
|
@@ -55,6 +55,7 @@ end
|
|
55
55
|
* [Pinterest](https://help.pinterest.com/en/articles/about-pinterest-crawler-0)
|
56
56
|
* [Twitterbot](https://developer.twitter.com/en/docs/tweets/optimize-with-cards/guides/getting-started), the list of IPs is in the [Troubleshooting page](https://developer.twitter.com/en/docs/tweets/optimize-with-cards/guides/troubleshooting-cards)
|
57
57
|
* [Yandex robots](https://yandex.com/support/webmaster/robot-workings/check-yandex-robots.xml)
|
58
|
+
* [Petal robots (Huawei search)](http://aspiegel.com/petalbot)
|
58
59
|
|
59
60
|
## License
|
60
61
|
|
data/lib/legitbot.rb
CHANGED
data/lib/legitbot/version.rb
CHANGED
@@ -0,0 +1,52 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'minitest/autorun'
|
4
|
+
require 'legitbot'
|
5
|
+
|
6
|
+
class PetalbotTest < Minitest::Test
|
7
|
+
def test_malicious_ip
|
8
|
+
ip = '149.210.164.47'
|
9
|
+
match = Legitbot::Petalbot.new ip
|
10
|
+
assert !match.valid?, msg: "#{ip} is not a real Petalbot IP"
|
11
|
+
end
|
12
|
+
|
13
|
+
def test_valid_ip
|
14
|
+
ip = '114.119.153.50'
|
15
|
+
match = Legitbot::Petalbot.new ip
|
16
|
+
assert match.valid?, msg: "#{ip} is a valid Petalbot IP"
|
17
|
+
end
|
18
|
+
|
19
|
+
def test_malicious_ua
|
20
|
+
bot = Legitbot.bot(
|
21
|
+
'Mozilla/5.0 (compatible;PetalBot; +https://aspiegel.com/petalbot)',
|
22
|
+
'149.210.164.47'
|
23
|
+
)
|
24
|
+
assert bot, msg: 'Petalbot detected from User-Agent'
|
25
|
+
assert !bot.valid?, msg: 'Not a valid Petalbot'
|
26
|
+
end
|
27
|
+
|
28
|
+
def test_valid_ua
|
29
|
+
bot = Legitbot.bot(
|
30
|
+
'Mozilla/5.0 (compatible;PetalBot; +https://aspiegel.com/petalbot)',
|
31
|
+
'114.119.153.50'
|
32
|
+
)
|
33
|
+
assert bot, msg: 'Petalbot detected from User-Agent'
|
34
|
+
assert bot.valid?, msg: 'Valid Petalbot'
|
35
|
+
end
|
36
|
+
|
37
|
+
def test_valid_name
|
38
|
+
bot = Legitbot.bot(
|
39
|
+
'Mozilla/5.0 (compatible;PetalBot; +https://aspiegel.com/petalbot)',
|
40
|
+
'66.249.64.141'
|
41
|
+
)
|
42
|
+
assert_equal :petalbot, bot.detected_as
|
43
|
+
end
|
44
|
+
|
45
|
+
def test_fake_name
|
46
|
+
bot = Legitbot.bot(
|
47
|
+
'Mozilla/5.0 (compatible; PetalBot/2.1; +http://www.google.com/bot.html)',
|
48
|
+
'81.1.172.108'
|
49
|
+
)
|
50
|
+
assert_equal :petalbot, bot.detected_as
|
51
|
+
end
|
52
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: legitbot
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Alexander Azarov
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-
|
11
|
+
date: 2020-12-16 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: augmented_interval_tree
|
@@ -160,6 +160,7 @@ files:
|
|
160
160
|
- lib/legitbot/google.rb
|
161
161
|
- lib/legitbot/legitbot.rb
|
162
162
|
- lib/legitbot/oracle.rb
|
163
|
+
- lib/legitbot/petalbot.rb
|
163
164
|
- lib/legitbot/pinterest.rb
|
164
165
|
- lib/legitbot/twitter.rb
|
165
166
|
- lib/legitbot/validators/domains.rb
|
@@ -176,6 +177,7 @@ files:
|
|
176
177
|
- test/legitbot/validators/ip_ranges_test.rb
|
177
178
|
- test/legitbot_test.rb
|
178
179
|
- test/oracle_test.rb
|
180
|
+
- test/petalbot_test.rb
|
179
181
|
- test/pinterest_test.rb
|
180
182
|
- test/twitter_test.rb
|
181
183
|
homepage: https://github.com/alaz/legitbot
|
@@ -198,7 +200,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
198
200
|
- !ruby/object:Gem::Version
|
199
201
|
version: '0'
|
200
202
|
requirements: []
|
201
|
-
rubygems_version: 3.1.
|
203
|
+
rubygems_version: 3.1.4
|
202
204
|
signing_key:
|
203
205
|
specification_version: 4
|
204
206
|
summary: 'Validate requests from Web crawlers: impersonating or not?'
|
@@ -212,6 +214,7 @@ test_files:
|
|
212
214
|
- test/apple_test.rb
|
213
215
|
- test/oracle_test.rb
|
214
216
|
- test/google_test.rb
|
217
|
+
- test/petalbot_test.rb
|
215
218
|
- test/botmatch_test.rb
|
216
219
|
- test/facebook_test.rb
|
217
220
|
- test/twitter_test.rb
|