PHP でeval()を使用して、ユーザーがフォームに入力した数式を解析するときに、どのようなことをチェックする必要があるのか 疑問に思っています。eval() に関する多くの回答を見てきましたが、すべてが同意しているようには見えません。
ここに私が集めたものがあります:
- 文字列に eval を使用しないでください (解析する必要がある数式であるため、これは問題になる可能性があります)
- フォームからの入力を削除します (何を削除する必要があるのか完全にはわかりません)
- Eval は悪である場合もそうでない場合もあり、セキュリティ リスクです (文字列内の方程式を解析するための代替手段はありますか?)
皆さんは私が何をすべきだと思いますか?
編集: eval メソッドを試してみましたが、うまくいきましたが、使用したサニテーションは 2 つ以上のオペランドをサポートしていませんでした。独自の (おそらく安全ではない) サニテーション正規表現を書きたくないので、代わりに事前に作成された数学クラスを見つけて使用します。提案してくれたみんなに感謝します!