ここには 3 つの危険があります。
これは、ユーザーが直接入力した内容を画面に表示するか、ユーザーがデータを改ざんした別の画面に表示することによって発生します。たとえば、ユーザーは名前の<script>alert('You got hacked!');</script>代わりに名前とタイプを求められます。プロファイルを表示するすべてのユーザーは、このコードを確認します。確認しないと、確認したすべてのユーザーのマシンで実行される可能性があります。
これは、ユーザーが入力したデータを最初にチェックせずに表示するページがシステムにある場合に発生します。この場合、おそらくデータベースからの現在の値を表示するページです。
ユーザーが入力したものをサニタイズするか、データベースから出る途中でチェックすることで、この状況を回避できます。
ただし、あなたの状況では、値を文字列ではなく数値としてデータベースに保存しても問題はありません。
ただし、はるかに大きな問題があります。それは、サーバー側で計算を実行する必要があるということです。ユーザーは、正味金額の値を操作して、必要なものをデータベースに送信することができます。
たとえば、ユーザーがオンライン ストアから何かを購入していて、それぞれが 1.00 ポンドの商品を 5 つカートに追加した場合、JavaScript で合計 (5.00 ポンド) を計算し、それを送信して保存すると、ユーザーはそれを編集して合計を£0に変更し、アイテムを無料で入手できます。
セキュリティのために、もちろんサーバーでコストを計算し、データベースから個人的に取得した値を使用する必要があります。バックエンドでユーザーから送信されたデータを再利用しないでください。個々のアイテムのコストを編集することもできるからです。 0も。
おまけとして、数値を加算および乗算する場合、フロントエンドとバックエンドで値の計算が異なる場合があることにも注意してください。次のコードを検討してください。
var total = 0.3 - 0.2;
合計が 0.1 であると予想する場合は、間違っています。答えは 0.99999999998 のようになります。
Javascript は浮動小数点数を正確に処理しません。