1

これが大きな問題であるかどうかは 100% 確信が持てませんが、Chrome の Inspect Element ビューアーで問題または穴を見つけた可能性があると思います。

私は (設定を変更しました) 非表示の ID を使用して多数のデフォルトを設定していました。1 つはユーザー レベルで、もう 1 つはユーザーをデフォルトでアクティブにすることでした。

しかし、inspect Element ビュー内でこれらの ID を表示してから値を変更すると、フォームを送信すると、指定した値ではなく、新しい値がサーバーに送信されます。

例えば:

コード内に次のようなものがありました。

    <input type="hidden" name="data[user][level][id]" value="1" id="MyID">

次に、検査ビュー内で次のように変更しました。

    <input type="hidden" name="data[user][level][id]" value="2" id="MyID">

次に、フォームを送信したところ、新しい値が送信されたことに驚きました。隠し ID は変更できず、ブラウザは内部に保持されているデフォルト値のみを送信する必要があるという印象を常に受け​​ていました。

これを変更して、データベースのデフォルトを基本ユーザーにするようにしました。その後、必要に応じてユーザー設定を変更できます。しかし、場合によってはこれがオプションではない可能性があるため、これをより安全にする方法についての回答またはフィードバックを期待していました.

フォームからサーバーに「非表示」データを渡すためのより良い方法 (別の方法) はありますか?

ユーザーがフォームを選択/送信したら、JQueryを使用して必要な隠しフィールドをフォームに追加することを考えていましたが、これが100%安全なのか、それとも良いアイデアなのかはわかりません。

アイデア/フィードバックは大歓迎です.....

どうもありがとう、

グレン。

4

3 に答える 3

0

データベースデータをモーダルに渡すのと同じ問題がありました。私が知っている解決策は、jquery ajaxを使用して、ファイルを要求するデータベースから情報を取得し、変数に追加して変数を比較することです

    $.ajax({
  url: "test.html",
  context: document.body
}).done(function() {
  $(this).addClass("done");
});

このコードサンプルを使用してそれを行いました。もちろん、スクリプトに応じていくつかの変更を行う必要があります

于 2013-09-12T20:21:39.207 に答える
0

少なくともCakePHPで、これを行うより良い方法を見つけました。CakePHP フレームワークには組み込みのセキュリティ呼び出しがあります。これらの組み込み関数を追加すると、あらゆる種類の機能が提供されますが、私がそれらを使用した主な理由は、この種のフォームの改ざんを防ぐことでした。

これがどのように行われるかは100%わかりませんが、すべてのフォームにトークンを追加し、送信されたフォームが正しいかどうかを確認しますか? トークンがどのように機能するかはわかりません。

しかし、ここに私が使用したコードがあります::

 public function beforeFilter() {
    $this->Auth->allow('index', 'SystemAccess');
    $this->Security->blackHoleCallback = 'blackhole';
 }

 public function blackhole($type) {
    $this->Auth->logout();
    $this->Session->setFlash('Sorry a security issue has been detected, please try again or contact us for support.', 'default', array(), 'bad');
    $this->redirect($this->Auth->redirect('/'));
 }

ここで、ユーザーがシステムにログインしている可能性があり、すべきでないことをしようとしているのはユーザーではないため、セキュリティを強化するためにこれに追加した Auth ログアウトの呼び出しを追加します。

それが他の人を助けることを願っています!

ただし、これは CakePHP が使用されている場合の修正にすぎません。他のフレームワークにもオプションがあると思いますが、基本的な HTML のみを使用している場合はどうなりますか? または Drupal のような CMS には、セキュリティが組み込まれている可能性があります。

どうもありがとう

グレン。

于 2013-09-25T13:45:16.517 に答える