2016-12-05 12 views
0

改造はGrailsの防止HTMLは、私はこの例に基づいて、HTMLフォームのユーザーの変更を防止するための方法を探しています

「ユーザー」の実体は、列挙型の役割(ユーザー、管理者など)を有し、UserControllerではありますその最初、最後、電子メール用のag:formを表示します。コントローラの動作はuser.properties = paramsです。

ユーザーは、FirebugまたはChrome Webdeveloperを使用してHTMLフォームを変更し、textfield firstnameの名前をroleに変更し、「Administrator」と入力して管理者権限を付与できます。

useToken = "true"とwithForm-closureがありますが、これはユーザーが同じフォームをダブル提出するのを妨げるようです。これに加えて、これはセッションで動作するため、複数のサーバーで実際にスケーラビリティはありません。

Grails 2.3.6を使用しています。 xxx.properties = paramsを使用しない以外のことを防ぐ方法はありますか?

答えて

1

許可されるプロパティのリストを指定できます。あなたの例:

user.properties['first', 'last', 'email'] = params 

あなたは常にセキュリティのためのリストを与える必要があります。 Grailsのドキュメントで「データバインディングとセキュリティの懸念」を検索してください。

+0

良い入力をありがとう。しかし、フォームが変更されていないことを確実にする方法はありません。すべてのフィールド名をハッシュしますか?私はこれが使用の目的ではなかったと思います。トークン、そうですか? – sullivan

+0

はい、あなたは正しいです。 useTokenは、ダブルフォーム送信とクロスサイトリクエスト偽造を防止します。 –

関連する問題