homographic_spoofing 0.1.1 โ 0.1.2
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/lib/homographic_spoofing/detector/rule/data/allowed_idn_characters.txt +1 -1
- data/lib/homographic_spoofing/detector/rule/data/digits.csv +80 -0
- data/lib/homographic_spoofing/detector/rule/disallowed_characters.rb +3 -3
- data/lib/homographic_spoofing/detector/rule/mixed_digits.rb +1 -1
- data/lib/homographic_spoofing/version.rb +1 -1
- metadata +17 -3
@@ -388,6 +388,16 @@
|
|
388
388
|
๐ดท,hanifi_rohingya_digit
|
389
389
|
๐ดธ,hanifi_rohingya_digit
|
390
390
|
๐ดน,hanifi_rohingya_digit
|
391
|
+
๐ต,garay_digit
|
392
|
+
๐ต,garay_digit
|
393
|
+
๐ต,garay_digit
|
394
|
+
๐ต,garay_digit
|
395
|
+
๐ต,garay_digit
|
396
|
+
๐ต
,garay_digit
|
397
|
+
๐ต,garay_digit
|
398
|
+
๐ต,garay_digit
|
399
|
+
๐ต,garay_digit
|
400
|
+
๐ต,garay_digit
|
391
401
|
๐ฆ,brahmi_digit
|
392
402
|
๐ง,brahmi_digit
|
393
403
|
๐จ,brahmi_digit
|
@@ -478,6 +488,26 @@
|
|
478
488
|
๐,takri_digit
|
479
489
|
๐,takri_digit
|
480
490
|
๐,takri_digit
|
491
|
+
๐,myanmar_pao_digit
|
492
|
+
๐,myanmar_pao_digit
|
493
|
+
๐,myanmar_pao_digit
|
494
|
+
๐,myanmar_pao_digit
|
495
|
+
๐,myanmar_pao_digit
|
496
|
+
๐,myanmar_pao_digit
|
497
|
+
๐,myanmar_pao_digit
|
498
|
+
๐,myanmar_pao_digit
|
499
|
+
๐,myanmar_pao_digit
|
500
|
+
๐,myanmar_pao_digit
|
501
|
+
๐,myanmar_eastern_pwo_karen_digit
|
502
|
+
๐,myanmar_eastern_pwo_karen_digit
|
503
|
+
๐,myanmar_eastern_pwo_karen_digit
|
504
|
+
๐,myanmar_eastern_pwo_karen_digit
|
505
|
+
๐,myanmar_eastern_pwo_karen_digit
|
506
|
+
๐,myanmar_eastern_pwo_karen_digit
|
507
|
+
๐ ,myanmar_eastern_pwo_karen_digit
|
508
|
+
๐ก,myanmar_eastern_pwo_karen_digit
|
509
|
+
๐ข,myanmar_eastern_pwo_karen_digit
|
510
|
+
๐ฃ,myanmar_eastern_pwo_karen_digit
|
481
511
|
๐ฐ,ahom_digit
|
482
512
|
๐ฑ,ahom_digit
|
483
513
|
๐ฒ,ahom_digit
|
@@ -508,6 +538,16 @@
|
|
508
538
|
๐ฅ,dives_akuru_digit
|
509
539
|
๐ฅ,dives_akuru_digit
|
510
540
|
๐ฅ,dives_akuru_digit
|
541
|
+
๐ฏฐ,sunuwar_digit
|
542
|
+
๐ฏฑ,sunuwar_digit
|
543
|
+
๐ฏฒ,sunuwar_digit
|
544
|
+
๐ฏณ,sunuwar_digit
|
545
|
+
๐ฏด,sunuwar_digit
|
546
|
+
๐ฏต,sunuwar_digit
|
547
|
+
๐ฏถ,sunuwar_digit
|
548
|
+
๐ฏท,sunuwar_digit
|
549
|
+
๐ฏธ,sunuwar_digit
|
550
|
+
๐ฏน,sunuwar_digit
|
511
551
|
๐ฑ,bhaiksuki_digit
|
512
552
|
๐ฑ,bhaiksuki_digit
|
513
553
|
๐ฑ,bhaiksuki_digit
|
@@ -548,6 +588,16 @@
|
|
548
588
|
๐ฝ,kawi_digit
|
549
589
|
๐ฝ,kawi_digit
|
550
590
|
๐ฝ,kawi_digit
|
591
|
+
๐ฐ,gurung_khema_digit
|
592
|
+
๐ฑ,gurung_khema_digit
|
593
|
+
๐ฒ,gurung_khema_digit
|
594
|
+
๐ณ,gurung_khema_digit
|
595
|
+
๐ด,gurung_khema_digit
|
596
|
+
๐ต,gurung_khema_digit
|
597
|
+
๐ถ,gurung_khema_digit
|
598
|
+
๐ท,gurung_khema_digit
|
599
|
+
๐ธ,gurung_khema_digit
|
600
|
+
๐น,gurung_khema_digit
|
551
601
|
๐ฉ ,mro_digit
|
552
602
|
๐ฉก,mro_digit
|
553
603
|
๐ฉข,mro_digit
|
@@ -578,6 +628,26 @@
|
|
578
628
|
๐ญ,pahawh_hmong_digit
|
579
629
|
๐ญ,pahawh_hmong_digit
|
580
630
|
๐ญ,pahawh_hmong_digit
|
631
|
+
๐ตฐ,kirat_rai_digit
|
632
|
+
๐ตฑ,kirat_rai_digit
|
633
|
+
๐ตฒ,kirat_rai_digit
|
634
|
+
๐ตณ,kirat_rai_digit
|
635
|
+
๐ตด,kirat_rai_digit
|
636
|
+
๐ตต,kirat_rai_digit
|
637
|
+
๐ตถ,kirat_rai_digit
|
638
|
+
๐ตท,kirat_rai_digit
|
639
|
+
๐ตธ,kirat_rai_digit
|
640
|
+
๐ตน,kirat_rai_digit
|
641
|
+
๐ณฐ,outlined_digit
|
642
|
+
๐ณฑ,outlined_digit
|
643
|
+
๐ณฒ,outlined_digit
|
644
|
+
๐ณณ,outlined_digit
|
645
|
+
๐ณด,outlined_digit
|
646
|
+
๐ณต,outlined_digit
|
647
|
+
๐ณถ,outlined_digit
|
648
|
+
๐ณท,outlined_digit
|
649
|
+
๐ณธ,outlined_digit
|
650
|
+
๐ณน,outlined_digit
|
581
651
|
๐,mathematical_bold_digit
|
582
652
|
๐,mathematical_bold_digit
|
583
653
|
๐,mathematical_bold_digit
|
@@ -658,6 +728,16 @@
|
|
658
728
|
๐ท,nag_mundari_digit
|
659
729
|
๐ธ,nag_mundari_digit
|
660
730
|
๐น,nag_mundari_digit
|
731
|
+
๐ฑ,ol_onal_digit
|
732
|
+
๐ฒ,ol_onal_digit
|
733
|
+
๐ณ,ol_onal_digit
|
734
|
+
๐ด,ol_onal_digit
|
735
|
+
๐ต,ol_onal_digit
|
736
|
+
๐ถ,ol_onal_digit
|
737
|
+
๐ท,ol_onal_digit
|
738
|
+
๐ธ,ol_onal_digit
|
739
|
+
๐น,ol_onal_digit
|
740
|
+
๐บ,ol_onal_digit
|
661
741
|
๐ฅ,adlam_digit
|
662
742
|
๐ฅ,adlam_digit
|
663
743
|
๐ฅ,adlam_digit
|
@@ -2,7 +2,7 @@
|
|
2
2
|
class HomographicSpoofing::Detector::Rule::DisallowedCharacters < HomographicSpoofing::Detector::Rule::Base
|
3
3
|
class << self
|
4
4
|
# See http://kb.mozillazine.org/Network.IDN.blacklist_chars
|
5
|
-
|
5
|
+
MOZILLA_DISALLOWED_CHARACTERS = Set[
|
6
6
|
"\u0020", # Space
|
7
7
|
"\u00a0", # No-break space
|
8
8
|
"\u00bc", # Vulgar fraction one quarter
|
@@ -124,11 +124,11 @@ class HomographicSpoofing::Detector::Rule::DisallowedCharacters < HomographicSpo
|
|
124
124
|
]
|
125
125
|
|
126
126
|
def allowed_chars_set
|
127
|
-
@@allowed_chars_set ||= (read_allowed_idn_chars.chars.to_set -
|
127
|
+
@@allowed_chars_set ||= (read_allowed_idn_chars.chars.to_set - MOZILLA_DISALLOWED_CHARACTERS)
|
128
128
|
end
|
129
129
|
|
130
130
|
private
|
131
|
-
# Built with
|
131
|
+
# Built with bin/generate_allowed_idn_characters
|
132
132
|
def read_allowed_idn_chars
|
133
133
|
File.read("#{__dir__}/data/allowed_idn_characters.txt")
|
134
134
|
end
|
@@ -23,7 +23,7 @@ class HomographicSpoofing::Detector::Rule::MixedDigits < HomographicSpoofing::De
|
|
23
23
|
end
|
24
24
|
end
|
25
25
|
|
26
|
-
# Built with
|
26
|
+
# Built with bin/generate_digits_characters
|
27
27
|
def read_digits
|
28
28
|
File.read("#{__dir__}/data/digits.csv")
|
29
29
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: homographic_spoofing
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jacopo Beschi
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2025-07-22 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: zeitwerk
|
@@ -94,6 +94,20 @@ dependencies:
|
|
94
94
|
- - ">="
|
95
95
|
- !ruby/object:Gem::Version
|
96
96
|
version: '0'
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: csv
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - "~>"
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: '3.3'
|
104
|
+
type: :runtime
|
105
|
+
prerelease: false
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - "~>"
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: '3.3'
|
97
111
|
description:
|
98
112
|
email:
|
99
113
|
- jacopo@37signals.com
|
@@ -160,7 +174,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
160
174
|
- !ruby/object:Gem::Version
|
161
175
|
version: '0'
|
162
176
|
requirements: []
|
163
|
-
rubygems_version: 3.5.
|
177
|
+
rubygems_version: 3.5.22
|
164
178
|
signing_key:
|
165
179
|
specification_version: 4
|
166
180
|
summary: A toolkit to both detect and sanitize homographic spoofing attacks in URLs
|