When creating the mxd for your feature service, you can use layer properties to specify certain fields as read-only.
I haven't tested it yet, but the docs seem to imply that the user will be able to provide a new value but it will be ignored when applying updates:
"Field properties set in ArcMap will be exposed through the feature service; this includes field aliases, field visibility and a field's read-only property. Read-only fields include system managed fields such as objectid and globalid as well as fields set to be read-only in the map document. When applying an update, if a value is set for a read-only field the feature service ignores the value. When applying an insert, default values are applied for read-only and invisible fields. (Note: If default values have not been defined Nulls are applied.)"