All Projects → kickstarter → ruby-homograph-detector

kickstarter / ruby-homograph-detector

Licence: Apache-2.0 license
🕵️‍♀️🕵️‍♂️ Ruby gem for determining whether a given URL is considered an IDN homograph attack

Programming Languages

ruby
36898 projects - #4 most used programming language

Projects that are alternatives of or similar to ruby-homograph-detector

Text
An efficient packed, immutable Unicode text type for Haskell, with a powerful loop fusion optimization framework.
Stars: ✭ 248 (+755.17%)
Mutual labels:  unicode
elokab-terminal
Lightweight terminal emulator program that supports the Arabic language
Stars: ✭ 16 (-44.83%)
Mutual labels:  unicode
unicode-lookup
The web's best unicode lookup tool!
Stars: ✭ 49 (+68.97%)
Mutual labels:  unicode
lua-wcwidth
Pure Lua implementation of the wcwidth() function
Stars: ✭ 14 (-51.72%)
Mutual labels:  unicode
cs string
Header-only library providing unicode aware string support for C++
Stars: ✭ 91 (+213.79%)
Mutual labels:  unicode
arrow-finder
These docs help you to find and use arrows you need more quickly
Stars: ✭ 24 (-17.24%)
Mutual labels:  unicode
Twitter Text
Twitter Text Libraries. This code is used at Twitter to tokenize and parse text to meet the expectations for what can be used on the platform.
Stars: ✭ 2,627 (+8958.62%)
Mutual labels:  unicode
glyphhanger
Your web font utility belt. It can subset web fonts. It can find unicode-ranges for you automatically. It makes julienne fries.
Stars: ✭ 422 (+1355.17%)
Mutual labels:  unicode
unicode-blocks
Unicode Blocks of a Ruby String
Stars: ✭ 18 (-37.93%)
Mutual labels:  unicode
confusables
A nodejs library for removing confusable unicode characters from strings.
Stars: ✭ 50 (+72.41%)
Mutual labels:  unicode
unicode.net
A Unicode library for .NET, supporting UTF8, UTF16, and UTF32. With an extra helping of emoji for good measure 🔥🌶️😁
Stars: ✭ 81 (+179.31%)
Mutual labels:  unicode
Tehreer-Android
Standalone text engine for Android aimed to be free from platform limitations
Stars: ✭ 61 (+110.34%)
Mutual labels:  unicode
unicode-9.0.0
JavaScript-compatible Unicode data. Arrays of code points, arrays of symbols, and regular expressions for Unicode v9.0.0’s categories, scripts, blocks, bidi, and other properties.
Stars: ✭ 16 (-44.83%)
Mutual labels:  unicode
greeb
Greeb is a simple Unicode-aware regexp-based tokenizer.
Stars: ✭ 16 (-44.83%)
Mutual labels:  unicode
unicode-data
Temporary holding place for my suggestions for future version of Unicode data files. Report bugs to https://www.unicode.org/reporting.html
Stars: ✭ 18 (-37.93%)
Mutual labels:  unicode
V Emoji Picker
🌟 A Lightweight and customizable package of Emoji Picker in Vue using emojis natives (unicode).
Stars: ✭ 231 (+696.55%)
Mutual labels:  unicode
Words-away
防止文本的敏感词检测 - Prevent sensitive words detection of text.
Stars: ✭ 224 (+672.41%)
Mutual labels:  unicode
emoji-db
A database of Apple-supported emojis in JSON format. Used by my Alfred emoji workflow.
Stars: ✭ 32 (+10.34%)
Mutual labels:  unicode
unicode display width
Displayed width of UTF-8 strings in Modern C++
Stars: ✭ 30 (+3.45%)
Mutual labels:  unicode
ocreval
Update of the ISRI Analytic Tools for OCR Evaluation with UTF-8 support
Stars: ✭ 48 (+65.52%)
Mutual labels:  unicode

ruby-homograph-detector

Ruby gem for determining whether a given URL is considered an IDN homograph attack. The underlying algorithm used in this gem is loosely based on Google Chrome’s IDN display algorithm. To learn more about why and how you defend against homograph attacks, see this blog post.

Installation

Install the homograph-detector gem, or add it to your Gemfile with bundler:

# In your Gemfile
gem 'homograph-detector'

Usage

The homograph-detector gem provides a single function homograph_attack? which takes a URL string and determines if the URL is considered a homograph attack:

HomographDetector.homograph_attack?('<your URL here>')

Examples

URL with Latin characters:

HomographDetector.homograph_attack?('https://paypal.com') # false

URL with confusable Cyrillic characters:

HomographDetector.homograph_attack?('https://раураӏ.com') # true

URL with non-confusable Cyrillic characters:

HomographDetector.homograph_attack?('http://яндекс.рф') # false

URL with multiple scripts:

# Greek and Latin
HomographDetector.homograph_attack?('wikiρedia.org') # true

# Japanese and Latin
HomographDetector.homograph_attack?('hello你好.com') # false

License

Licensed under Apache License, Version 2.0 (LICENSE.txt or http://www.apache.org/licenses/LICENSE-2.0).

For a summary of the licenses used by ruby-homograph-detector’s dependencies, see NOTICE.md.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].