程序員們在日常的編程工作中,難免會(huì)在網(wǎng)上查找資料、復(fù)制一些現(xiàn)成代碼使用。
這是很習(xí)慣性的操作,但有危險(xiǎn)隱含其中,需要提高警惕。
比如,看看下面的操作是不是很神奇:
如上所示,復(fù)制了一行JS代碼,但粘貼后出現(xiàn)了額外的代碼!
如果額外的這段代碼是惡意的、甚至是木馬、后門。而如果直接復(fù)制使用了,那么,后果很嚴(yán)重。
可能有人說:復(fù)制時(shí)就能看到代碼,有沒有風(fēng)險(xiǎn)一看便知。
道理似乎沒錯(cuò),但如果復(fù)制的代碼量大呢?如果代碼經(jīng)過加密處理了呢?
因此,在網(wǎng)上復(fù)制代碼,一定要小心謹(jǐn)慎。
再來說這種復(fù)制陷阱的原理:
如上圖所示操作,實(shí)現(xiàn)的原理是:接管頁面的oncopy事件,在事件中,對復(fù)制內(nèi)容進(jìn)行修改。
源碼如下:
保存為html,打開即可測試其效果。
從代碼中可以看到,核心操作只有區(qū)區(qū)幾行,如果查看源碼即可知道原理。
但如果圖中的JS代碼經(jīng)過加密呢?比如用JShaman對框選的代碼加密,會(huì)成為:
這樣,便很難看出代碼的含義,即使有危險(xiǎn)的操作,也不易被查詢。
因此,再次友情提示:復(fù)制有風(fēng)險(xiǎn),COPY需謹(jǐn)慎。