2

すべて。私のコードで発生するいくつかの問題を共有したいと思います。phpを使用してmysqlデータベースに投稿および保存したHTMLフォームがあります。データの合計が100でない場合は、確認フォームを提出します。投稿できません。この制限は、クライアント側またはJavaScriptを使用してHTMLで行います。このようなもの :

$("#submit").click(function(event) {

                    var total_I     = $("#total_I").val();
                    var total_III   = $("#total_III").val();
                    var total       = 0;
                    /* stop form from submitting normally */
                   if($("#eval-form").validate().form())
                   {

テスト計画を立てると、完璧に機能します。しかし、このWebサイトを立ち上げて、一度に約500人のユーザーにアクセスすると、データベースに保存されているデータが100未満のデータがいくつかあります。私の質問は、この問題をどのように克服するかです。この状態をより適切に制限する方法はありますか?まず、あなたの答えに感謝します

4

2 に答える 2

4

Webセキュリティに関する本を書くとしたら、タイトルは「NeverTrustTheClient」になります。

あなたは実際にはクライアントを制御していないので、javascriptがオフになっている場合、誰かがカスタムクエリをまとめている場合、またはクライアントが正しく動作していない場合は、不正なデータを取得する可能性があります。

クライアント側の検証は、ユーザーインターフェイスの観点から優れたツールです。エラーを早期にキャッチし、適切に実装すると、ユーザーのフラストレーションを減らすことができます。

セキュリティまたはポリシー施行の手段として、クライアント側の検証は役に立ちません。クライアントで行われた作業を複製することを意味する場合でも、サーバー側で実際に受信するデータを確認する必要があります。

于 2012-11-05T01:40:15.263 に答える
2

Jqueryを使用して検証を行う場合は、クライアント側でサーバー側でも置き換えることをお勧めします。

したがって、PHPのスクリプト(タグを形成していると思います)で、データの2番目の検証を挿入できます。

これにより、データが検証に従っていることを確認できます。

于 2012-11-05T01:41:21.160 に答える