Zero-width characters are invisible, ‘non-printing’ characters that are not displayed by the majority of applications. For example, I’ve inserted 10 zero-width spaces into this sentence, can you tell? (Hint: paste the sentence into Diff Checker to see the locations of the characters!). These characters can be used to ‘fingerprint’ text for certain users.
Well, the original reason isn’t too exciting. A few years ago I was a member of a team that participated in competitive tournaments across a variety of video games. This team had a private message board, used to post important announcements amongst other things. Eventually these announcements would appear elsewhere on the web, posted to mock the team and more significantly; ensuring the message board was redundant for sharing confidential information and tactics.
The security of the site seemed pretty tight so the theory was that a logged-in user was simply copying the announcement and posting it elsewhere. I created a script that allowed the team to invisibly fingerprint each announcement with the username of the user it is being displayed to.
I saw a lot of interest in zero-width characters from a recent post by Zach Aysan so I thought I’d publish this method here along with an interactive demo to share with everyone. The code examples have been updated to use modern JavaScript but the overall logic is the same.
(Score: 5, Funny) by Osamabobama on Thursday April 05 2018, @09:54PM (5 children)
Imagine how much better it would be in vi!
Appended to the end of comments you post. Max: 120 chars.
(Score: 4, Informative) by requerdanos on Thursday April 05 2018, @10:35PM (3 children)
They do, in fact, show up just fine in vi. (well, vim.)
It's always an especially good idea to paste into a plain-text environment before pasting at a command prompt, if you do that sort of thing.
(Score: 2, Insightful) by anubi on Friday April 06 2018, @11:04AM (1 child)
It seems like these days, you have to type it in yourself if you want to be sure...
Cutting and pasting with modern technology looks a bit dangerous... what you see ain't necessarily what you get!
"Prove all things; hold fast that which is good." [KJV: I Thessalonians 5:21]
(Score: 3, Informative) by requerdanos on Friday April 06 2018, @12:49PM
ominous demonstration [security.love] in which you copy "not evil" but it pastes as "evil". This one requires javascript; explanation here [github.com].
(Score: 4, Funny) by Rivenaleem on Friday April 06 2018, @01:08PM
vi is just vim with a zero-space m
(Score: 0) by Anonymous Coward on Thursday April 05 2018, @10:52PM
OFF WITH HIS HEAD!
Oh wait, mighta been too late... did they cut off yer head before dumping you in the ocean oh brother from another mother?