Earlier quoted context omitted.
> A utf8 decoder should reject portions of utf8 streams that don't use the shortest possible encoding so you would say that there should be no file names using the cyrillic o? So if a russian-speaking person wants to save a file, that file name should be rejected? Or translated into a mish-mash between cyrillic and roman characters? How will that work if that filename is reused on a system on which the default font d…
> A utf8 decoder should reject portions of utf8 > streams that don't use the shortest possible encoding so you would say that there should be no file names using the cyrillic o? I'm sorry, I was unclear. I should have said "don't use the shortest possible encoding for a code point ". Cyrillic 'o' is code point U+043E while roman 'o' is code point U+006F. The canonicalization attack relies on overly liberal utf8 decod…
Can we believe our eyes? Misleading people with Unicode.
81–90 of 128 posts
Re: Can we believe our eyes? Misleading people with Unicode.
#82Seems easy enough to guard against. Highlight the characters which are unexpected for my locale.
Re: Can we believe our eyes? Misleading people with Unicode.
#83I personally find the RLO / LRO issue much more concerning. I just tested Chrome and Firefox and found it works in URLs. You could rewrite pyapla.com to paypal.com and phish people easily.
Re: Can we believe our eyes? Misleading people with Unicode.
#84Earlier quoted context omitted.
> A utf8 decoder should reject portions of utf8 > streams that don't use the shortest possible encoding so you would say that there should be no file names using the cyrillic o? I'm sorry, I was unclear. I should have said "don't use the shortest possible encoding for a code point ". Cyrillic 'o' is code point U+043E while roman 'o' is code point U+006F. The canonicalization attack relies on overly liberal utf8 decod…
The Cyrillic o isn't being interpreted as U+006F, it just looks like it. A UTF-8 decoder doesn't know how it's output is going to be used.
Re: Can we believe our eyes? Misleading people with Unicode.
#85Earlier quoted context omitted.
Whoa. Check out you did to the markup of this page. http://d.pr/HKSQ
The HTML standard specifies that changes in text direction are bounded to the block they occur in: http://www.w3.org/TR/1999/REC-html401-19991224/struct/dirlan... I discovered this as I was writing a paranoid HTML cleanup library and wanted to prevent the attack where a user sticks a text-direction-change character into the page and reverses the whole thing. As we've all just witnessed, that can't happen in a conform…
Normally blacklisting is bad, but we're only targeting the few text-direction-changing characters that exist.
Re: Can we believe our eyes? Misleading people with Unicode.
#86It's funny to think that a hapless vimmer who happens to be running Windows would have never noticed this, because they would simply have typed ":edit $SYSTEMROOT\system32\drivers\etc\hosts" and gotten the real file. (This isn't a "look how cool command line junkies are" comment; I was just musing.)
Re: Can we believe our eyes? Misleading people with Unicode.
#87Re: Can we believe our eyes? Misleading people with Unicode.
#88Seems easy enough to guard against. Highlight the characters which are unexpected for my locale.
I wonder if it would suffice to highlight characters not found in the primary font. I don't know how, exactly, fonts fallthrough, but I doubt most fonts venture outside locales.
CJK fonts often include not only CJK, but European characters as well. Almost always at least ASCII.
Ultimately, having a single font for all characters is desirable: Having to go track down more fonts because you're seeing � in your text is a pretty bad experience. Substituting other fonts is at best a kluge, as it often looks terrible.
Projects like DejaVu who plan to eventually cover all living scripts (http://dejavu-fonts.org/wiki/Plans) are not only a good thing but they are also making substantial progress.
Also, even in ASCII, there are a bunch of confusing characters (all depend on which font, of course): I (eye), l (ell), 1 (one), | (vertical bar); O (oh), and 0 (zero); {} (braces) and () (parentheses); 5 (five), S (ess), and $ (dollar), rn (r-n) and m; vv (v-v) and w; etc.
Wе nееԁ tօ fⅰnⅾ Ьеttеr ѕоⅼυtions tҺаɳ vіѕυаⅼⅼУ dіѕtіɳgυіѕҺing сҺаrаⅽtеrѕ.
Re: Can we believe our eyes? Misleading people with Unicode.
#89This was ultimately stopped by Antispoof (https://secure.wikimedia.org/wikipedia/mediawiki/wiki/Extens...) but the bug reports are still interesting:
Re: Can we believe our eyes? Misleading people with Unicode.
#90Earlier quoted context omitted.
I wonder how/why people end up typing á in that URL - on my machine, it takes extra effort (OPTION-e a) to enter that.
non-english keyboards links