0

要素の表示/非表示を切り替えるなど、Web ページでさまざまなクリックを登録したいと考えています。

クリックは、ログインしていないユーザーからのものです。

特定のページで行われたアクションのキーと値のペアを格納する属性を持つImpressionモデルがあります。actions

クリックイベントで、この関数でレコードを更新しています:

function sendAjax(id, data) {
    $.ajax({
      type: "PATCH",
      url: '/impressions/update',
      data: {'impression_id' : id, 'actions' : data},
      success: function(events){
      }
   });  
}

しかし、これはまったく安全ではないことを認識しています。理論的には、ユーザーは必要なレコードを更新できます。

どうすればこれをより安全に行うことができprotect_from_forgeryますか? 私のユースケースで Rails を何らかの方法で利用できますか?

4

2 に答える 2

1

これは必要な機能ではないと思います。考えすぎかもしれません:)

Google アナリティクスでも、理論的には、訪問者が自分の行動を操作するのを止めることはできません。コンソールだけで必要なイベントをプッシュできます。

また、分析ツールが 100% 安全で正確である必要はありません。ノイズが発生するはずです。ノイズを緩和することはできますが、実際に回避することはできません。または、合理的なコストで回避することもできません。

于 2014-01-06T03:43:58.813 に答える
0

Impressionからのインプレッションが に属していることを確認する必要がありますcurrent_user

例:

def update
  @impression = current_user.impressions.find(params[:impression_id])
  # ...
end
于 2014-01-06T02:35:21.913 に答える