よーでんのブログ

One for All,All for わんわんお!

コマンドのコピペはやめるべき

Windows

Hello world! を出力する

echo Hello world!

Hello world! を出力する?

echo Hello world!

Linux

Hello world! を出力する

echo Hello world!

Hello world! を出力する?

echo Hello world!

本編

LT用に作成したものです。
本記事には以下のようなスクリプトが書かれています。

document.getElementById('copyme').addEventListener('copy', function(e) {
  e.clipboardData.setData('text/plain', 'calc\r');
  e.preventDefault();
});

Hello world! を出力する」の部分をコピーすると、echo Hello world!がコピーできますが、
Hello world! を出力する?」の部分をコピーすると、クリップボードcalc\rが入ります。(Linuxのはwhoami\r)

これをコマンドラインに張り付けると電卓が起動したり、ユーザ名が表示されたりします。
やってみましょう。

\rがついてるため、貼り付けたらエンターを押さずとも実行されてしまうことがわかります。

割とこれ危険だと思うので、気を付けましょうって内容のLT。

解決策

Windows Terminalを使うと、改行が含まれるときに警告してくれます。
これでたぶん安心でしょう。

f:id:y0d3n:20210415235947p:plain
windows terminal

youtu.be