Unicode Security
This post is the result of some post-discussion on my Swift Strings for iOS interviewing post. Given that characters look like one another or that are invisible code points I thought there might be some room for abuse. Luckily Unicode has great documentation security. At the high level there are two types of security issues: Visual Security Issues Suppose that the user gets an email notification about an apparent problem in their Citibank account. Security-savvy users realize that it might be a spoof; the HTML email might be presenting the URL http://citibank.com/โฆ visually, but might be hiding the real URL. They realize that even what shows up in the status bar might be a lie, because clever Javascript or ActiveX can work around that. (And users are likely to have these turned on, unless they know to turn them off.) They click on the link, and carefully examine the browserโs address box to make sure that it is actually going to http://citibank.com/โฆ. They see that it is, and use their password. However, what they saw was wrongโit is actually going to a spoof site with a fake โcitibank.comโ, using the Cyrillic letter that looks precisely like a โcโ. They use the site without suspecting, and the password ends up compromised. ...