teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

2

説明を追記

2021/10/24 12:52

投稿

fj68
fj68

スコア752

answer CHANGED
@@ -7,6 +7,8 @@
7
7
 
8
8
  [Making an Eval command](https://github.com/AnIdiotsGuide/discordjs-bot-guide/blob/master/examples/making-an-eval-command.md)
9
9
 
10
+ JavaScriptを実行するサーバを用意して実行したい文字列を送信し、実行結果を返すことで`eval`を避ける方法もあります。その場合はまた別のセキュリティリスクがありますが。
11
+
10
12
  どのような目的で`eval`されたいのかを書いていただければ具体的な回答を得られるかもしれません。
11
13
  私はdiscord.jsで`eval`したことがなく、自分が`eval`を使ってコードを書いてもどなたかに使ってもらえるほど安全なものになるとは思えないので、このような回答になってしまいます。すみません。
12
14
  ご参考まで。

1

説明を追記

2021/10/24 12:52

投稿

fj68
fj68

スコア752

answer CHANGED
@@ -1,7 +1,7 @@
1
1
  まず、再三考えたことでしょうが、`eval`ではなく`Function`や[JS-Interpreter](https://neil.fraser.name/software/JS-Interpreter/docs.html)といった他の方法で実現できないか今一度よく検討してみてください。
2
2
 
3
3
  [eval() - JavaScript | MDN](https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/eval) - より安全な`Function`を使う方法などが紹介されています。
4
- [絶対にevalを使うな! - Discord.js Japan User Group](https://scrapbox.io/discordjs-japan/%E7%B5%B6%E5%AF%BE%E3%81%AB_eval_%E3%82%92%E4%BD%BF%E3%81%86%E3%81%AA%EF%BC%81)
4
+ [絶対にevalを使うな! - Discord.js Japan User Group](https://scrapbox.io/discordjs-japan/%E7%B5%B6%E5%AF%BE%E3%81%AB_eval_%E3%82%92%E4%BD%BF%E3%81%86%E3%81%AA%EF%BC%81) - evalの代替ライブラリなどが載っています。
5
5
 
6
6
  その上で、どうしても`eval`したいという場合は、以下が参考になるかもしれません。
7
7