絶対に eval を使うな!
Discordボットを作ったことが人の中には、evalという関数を使ってコードを実行し結果を返すというものを、作ったことがある人もいるのではないでしょうか。
しかし、このevalという関数は任意のコードを何でも実行できてしまうというかなり危険な関数です。MDNでも絶対に使うなと書かれています。 何ができるの?
何でもできます。ファイルを操作することもできるので、第三者にPCのファイルを盗まれたり、消されたりされるでしょう。それだけじゃ済まないこともあります。
Discord.jsを使用している状態なら、トークンを奪うことも可能です。
実行できるの俺だけだし大丈夫っしょ
大丈夫ではありません。
あなたのアカウントが乗っ取られて、知らない間にコードを実行される可能性があります。
もしかすると、処理に抜け穴があるかもしれません。
それでも俺はDiscord.jsを使った簡単なコードを実行したいんだー!!!
だけど、だけど、俺はDiscordからコマンドを打ってコードを実行したいんじゃー!!!
eval の代わりに vm2 を使用してコードを実行すると、危険度を下げることができます。 2024/4/7 vm2はセキュリティの問題を抱えているので、使用しないでください
requireやprocess, setTimeout, setIntervalといったものは使えなくなります。
注意点
内側から現在のプロセスをクラッシュさせることができます。
これらの問題や他の問題は 、vm2 の Known issues 欄に書かれています。
そんな、Discord.jsが使えない空間でコードを実行できないのはJavaScriptじゃないんだよぉぉぉ!!危険だって必要なんだぁぁ
正気か?滝に打たれて頭冷やして