0

idユーザー A から受信したメッセージに返信するために、link_to タグを使用してユーザー A のメッセージを渡します。

<%= link_to "Reply", new_message_path(:id => @user.id), class: "button" %>

これで、受信者が @user であることを確認できます。しかし、問題は、メッセージ送信フォームで新しいビューを開くと、URL にもユーザー A の ID が含まれていることです。どうすればそれを隠すことができますか? 誰かがパラメータを簡単に変更でき、メッセージがユーザー A ではなく別のユーザーに送信される可能性があるためです。

4

3 に答える 3

2

ID が必要な場合は、何らかの方法でパラメーターを送信する必要があります。あなたはそれを隠すことはできませんし、おそらく隠したくありません。

誰かがメッセージを別のユーザーに送信するために URL を変更した場合、彼は喜んでそうします。

ユーザーが特定のユーザーにのみメッセージを送信できるようにする場合は、アクセス許可を設定してください。

パラメータを非表示にしても、何も得られません。

于 2013-04-11T09:19:53.813 に答える
1

できません。

つまり、ID を非表示にして、POST メソッドと非表示フィールドを ID に使用できますが、リスクは同じです。誰でも ID を変更できます。

「ユーザーが他のユーザーにメッセージを送信できないように、メッセージ システムを保護する方法」を自問する必要があります。メッセージにトークン フィールド (長いランダム文字列など) を作成し、このトークンを使用して、メッセージが正しいユーザーに送信されていることを確認することをお勧めします。少しコーディングが必要ですが、アプリケーションにセキュリティが必要な場合は避けられません

于 2013-04-11T09:21:53.927 に答える
0

この構文では、まだこの問題がありますか?

<%= link_to "Reply", new_message_path(@user), class: "button" %>

コントローラー アクション 'create' のコードは何ですか?

于 2013-04-11T09:19:54.157 に答える