Skip to content

New lint: detect homoglyphs #2368

Closed
Closed
@gnzlbg

Description

@gnzlbg

Homoglyphs are different unicode characters that to the naked eye look the same.

#![feature(non_ascii_idents)]
fn main() {
    let a = 2;
    let а = 3;
    assert_eq!(a, 2);
    assert_eq!(а, 3);
}

where a is latin lower case a, and а is cyrillic lower case a. Another example is: A, Α, А (Latin-A, Greek Alpha, Cyrillic-A).

This binary runs on my machine without errors, but it seems that the Rust playground doesn't support unicode yet.

Homoglyph-based attacks are typically used in domain names, and underhanded code.

To prevent this attacks we can check whether any two identifiers in scope are homoglyphs, and warn about it.

Metadata

Metadata

Assignees

No one assigned

    Labels

    A-lintArea: New lints

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions