[{"data":1,"prerenderedAt":384},["ShallowReactive",2],{"project-14124285":3},{"id":4,"name":5,"line":6,"line_source":7,"title":8,"url":9,"domain":10,"maker":11,"posted_at":12,"year":13,"points":14,"comments":15,"rank_in_year":16,"shown_in_year":17,"top":18,"tier":19,"category":20,"subcategory":21,"format":22,"keywords":23,"reception":28,"sentiment":29,"stance_mix":30,"scored_comments":35,"aspects":36,"strip":45,"post_text":48,"what":49,"said":64,"maker_in_thread":172,"shape":177,"grid":180,"attempts":345,"same_week":346,"maker_shows":46,"maker_hidden":376,"reader_version":377,"card":378},"14124285","Hack the user cursor","'Hack' the user cursor","title","Show HN: 'Hack' the user cursor","http:\u002F\u002Fjavier.xyz\u002Fcontrol-user-cursor\u002F","javier.xyz","javierbyte",1492316106,2017,267,58,88,2242,4,"legend","games","browser prank demo","web_app",[24,25,26,27],"fake cursor","cursor hack","javascript cursor","css cursor","debated",0.073,{"positive":31,"neutral":32,"mixed":33,"critical":34},19,13,2,17,51,{"execution":37,"design":40,"idea":41,"privacy":43},{"positive":38,"critical":39},3,9,{"positive":33,"critical":38},{"positive":42,"critical":38},10,{"positive":44,"critical":33},1,[38,46,38,38,44,46,38,46,46,38,38,38,44,44,38,46,47,44,38,44,38,47,46,44,44,38,44,46,38,46,46,46,46,38,44,44,46,46,38,46],5,0,null,{"problem":48,"audience":48,"pricing":48,"motivation":48,"time_to_build":48,"stack":50,"openness":63,"stage":63,"team_size":63},[51,59],{"value":52,"source":53,"evidence":54},"JavaScript","commenter",[55],{"id":56,"by":57,"text":58},"14124804","jamesfisher","This hack works by disabling the real cursor (using a custom CSS cursor image set to a transparent png), then moving around a fake cursor image using JS. See by comparison this…",{"value":60,"source":53,"evidence":61},"CSS custom cursor image",[62],{"id":56,"by":57,"text":58},"unknown",{"praise":65,"objections":102,"requests":128,"questions":151,"alternatives":167},[66,77,88,95],{"value":67,"source":53,"evidence":68},"Clever and creative hack",[69,73],{"id":70,"by":71,"text":72},"14124709","19eightyfour","Having a look at the poster's github reveals this person has a lot of good stuff. Very creative and clever.",{"id":74,"by":75,"text":76},"14124661","bluepnume","Pretty smart once you figure out how it works. Wonder if there's some kind of advanced click-jacking attack you could achieve with a technique like this.",{"value":78,"source":53,"evidence":79},"Delightfully annoying and fun",[80,84],{"id":81,"by":82,"text":83},"14124776","cyberferret","Two words - \"Delightfully Annoying\" !! :)",{"id":85,"by":86,"text":87},"14126611","thenormal","So much fun I had, thank you ;)",{"value":89,"source":53,"evidence":90},"Repel effect is funny",[91],{"id":92,"by":93,"text":94},"14124681","sml156","The repel was the funniest things I have seen all day.",{"value":96,"source":53,"evidence":97},"Could work as a game mechanic",[98],{"id":99,"by":100,"text":101},"14124705","jv22222","This could be used as a good game mechanic. Nicely done!",[103,114,121],{"value":104,"source":53,"evidence":105},"Could enable dark patterns",[106,110],{"id":107,"by":108,"text":109},"14124657","ohadron","Nicely done. Not to give anyone any ideas, but the 'gravity'\u002F'attract' mode could be used for some very dark UI patterns.",{"id":111,"by":112,"text":113},"14131032","rosalinekarr","The repel could be dangerous too. There are plenty of features that websites are legally or ethically obligated to provide, but they would rather users not use them. I'm…",{"value":115,"source":53,"evidence":116},"Could break assistive tech like high contrast or large cursors",[117],{"id":118,"by":119,"text":120},"14125052","Freak_NL","You would risk messing up the use of assistive technologies like high contrast and oversized cursors. That is the opposite of helpful.",{"value":122,"source":53,"evidence":123},"Could be used to trick voters in voting terminals",[124],{"id":125,"by":126,"text":127},"14125065","lutusp","This would be great in voting terminals. Everything seems normal until you try to vote for someone hackers don't like.",[129,144],{"value":130,"source":53,"evidence":131},"Fix display of both real and fake cursors in Firefox",[132,136,140],{"id":133,"by":134,"text":135},"14124786","ars","On Firefox I get two cursors, I'm unsure which is the one that will actually do something if I click.",{"id":137,"by":138,"text":139},"14126274","gruez","Is this broken for anyone else on firefox? I see both the fake cursor and the real cursor.",{"id":141,"by":142,"text":143},"14124670","Fry-kun","Trick doesn't work on Firefox 52: original cursor is visible as well as the fake one Works on Chrome, though",{"value":145,"source":53,"evidence":146},"Fix rendering on high-DPI displays",[147],{"id":148,"by":149,"text":150},"14126475","chias","Cool idea! This seems to work oddly for high-DPI displays: the cursor is microscopic and doesn't seem to escape the viewport.",[152],{"value":153,"source":53,"evidence":154},"Does it still work over HTTPS and in Safari",[155,159,163],{"id":156,"by":157,"text":158},"14124854","nsgi","Nice hack. It's not obvious whether it still works now that GitHub Pages uses HTTPS, though the fact that clicking on the page triggers the same action as clicking the page…",{"id":160,"by":161,"text":162},"14125027","Nemo157","That does seem to be the case for me (at least on Safari 9.1); the real cursor disappears, but no fake cursor appears.",{"id":164,"by":165,"text":166},"14125092","hrrsn","The demo works fine on Safari 10 for me.",[168],{"value":169,"source":53,"evidence":170},"cursory-hack, a related CSS cursor hack by another commenter",[171],{"id":56,"by":57,"text":58},{"comments":44,"answered":47,"key":173},[174],{"id":175,"text":176},"14124798","I was thinking about this. You can accumulate the position difference and trick the user into clicking anywhere. I'll try to do that right now and update the demo :)",{"commenters":178,"max_depth":18,"maker_replies":44,"first_comment_mins":179,"lifespan_hours":178},53,135,[181,183,185,189,191,194,198,199,200,203,207,211,215,217,220,223,226,229,232,235,238,241,243,246,248,252,253,256,259,260,263,267,269,270,274,277,280,284,287,291,295,296,299,301,305,307,311,313,315,319,320,322,323,327,330,334,337,341],[56,47,38,182,57,47],"project\u002Fneutral\u002Fexecution",[156,47,46,184,157,47],"project\u002Fpositive\u002Fexecution",[186,47,46,187,188,47],"14126509","project\u002Fpositive\u002Fdesign","zeta0134",[148,47,44,190,149,47],"project\u002Fcritical\u002Fexecution",[192,47,38,182,193,47],"14127000","d2p",[195,44,44,196,197,47],"14125004","project\u002Fcritical\u002Fdesign","TheAceOfHearts",[160,44,44,190,161,47],[164,44,46,184,165,47],[201,44,38,202,119,47],"14125047","project\u002Fneutral\u002Fidea",[204,44,47,205,206,47],"14125086","other\u002Fneutral\u002Fnone","lawik",[208,44,46,209,210,47],"14125290","project\u002Fpositive\u002Fidea","aschampion",[212,44,47,213,214,47],"14126087","commenter\u002Fneutral\u002Fidea","shawnz",[216,44,46,209,210,47],"14126173",[218,44,38,202,219,47],"14126204","jfim",[221,44,38,202,222,47],"14126266","Chris_Newton",[224,44,47,205,225,47],"14131782","jasonkostempski",[227,44,38,202,228,47],"14125713","sharpercoder",[230,33,44,190,231,47],"14124829","Mystrl",[233,33,44,190,234,47],"14125188","rocqua",[236,33,44,190,237,47],"14125189","Jaruzel",[239,33,38,182,240,47],"14126242","Aaron1011",[107,38,38,242,108,47],"project\u002Fmixed\u002Fidea",[244,38,46,209,245,47],"14124714","Gabriel_Martin",[247,38,47,213,108,47],"14124722",[249,38,44,250,251,47],"14124951","project\u002Fcritical\u002Fidea","astrobe_",[118,38,44,196,119,47],[254,38,38,202,255,47],"14125144","fapjacks",[257,38,38,202,258,47],"14126472","pharrlax",[111,38,44,250,112,47],[261,18,38,202,262,47],"14124710","Aldo_MX",[264,18,47,265,266,47],"14126616","commenter\u002Fneutral\u002Fnone","qprs",[74,46,46,268,75,47],"project\u002Fpositive\u002Fprivacy",[175,46,47,202,11,44],[271,46,44,272,273,47],"14124855","project\u002Fcritical\u002Fprivacy","homakov",[275,46,44,272,276,47],"14125563","tempay",[278,46,47,279,273,47],"14126727","commenter\u002Fneutral\u002Fprivacy",[281,282,38,202,283,47],"14125180",6,"panic",[285,282,38,242,286,47],"14125272","Nition",[288,289,44,190,290,47],"14124939",7,"biggerfisch",[292,293,46,187,294,47],"14125852",8,"Aardwolf",[141,39,44,190,142,47],[297,39,46,184,298,47],"14124802","mburst",[70,42,46,300,71,47],"maker\u002Fpositive\u002Fnone",[302,303,46,209,304,47],"14125862",11,"askjdlkasdjsd",[99,306,46,209,100,47],12,[308,32,38,309,310,47],"14129206","project\u002Fneutral\u002Fdesign","wingerlang",[92,312,46,209,93,47],14,[81,314,46,209,82,47],15,[316,317,44,196,318,47],"14137300",16,"Sunset",[125,34,44,250,126,47],[133,321,44,190,134,47],18,[137,31,44,190,138,47],[324,325,46,209,326,47],"14125210",20,"emmelaich",[85,328,46,329,86,47],21,"project\u002Fpositive\u002Fnone",[331,332,46,329,333,47],"14125025",22,"tobyhinloopen",[335,336,38,202,255,47],"14125148",23,[338,339,46,209,340,47],"14124684",24,"red023",[342,343,46,209,344,47],"14124805",25,"jlebrech",[],[347,352,357,361,366,371],{"id":348,"name":349,"points":350,"category":351},"14135045","Zuck.js",339,"languages",{"id":353,"name":354,"points":355,"category":356},"14135781","Audioshop",285,"creative",{"id":358,"name":359,"points":360,"category":20},"14147585","Dance of the Fairies",261,{"id":362,"name":363,"points":364,"category":365},"14137563","Visual Studio Code",236,"dev_tools",{"id":367,"name":368,"points":369,"category":370},"14130280","TorrentPeek",184,"data",{"id":372,"name":373,"points":374,"category":375},"14122418","UrlRoulette",180,"consumer_social",false,"v2",{"id":379,"name":5,"line":6,"ai":376,"cat":20,"year":13,"points":14,"comments":15,"rec":28,"s":380,"top":18,"kw":381,"maker":11,"domain":10,"tier":19,"attempts":47,"strip":382,"url":9,"mix":383,"praise":67,"objection":104,"sub":21},14124285,0.07,[24,25,26,27],"3533153553331135013130511315355553115535",[31,32,33,34],1793990957758]