Can you give an example of what you mean by valid beyond that a given categories and type are defined (exists in the system)?
Sent from my iPad
From a interface perspective this seams to be a contract problem.
Either way if a non existent reference is given there will be an exception down the road granting the data to be invalid.
Assuming your clients are authenticated and the connection is secure I don't see much problems.
Now if the connection is open, the client is unidentifiable and acts maliciously you have other problems that by solving would help to solve this one.
This is like when making Order, should the system validate that the product reference is valid in the Product Catalogue (as existing) upon submitting it or let it flow? If we let it flow what is the worst it an happen? Order cancelled?
Sent from my iPad
A more intricate yet similar happened in a Client. I was asked to break the system.
I managed to make an Order for an existing product with a different price. The product in the catalogue was priced $500 and I made the order with a price of $5. This because the system was accepting the product price given by the Client rather then getting the price from the catalogue upon adding it to the order. When I mean client I mean the Web browser.
The problem was solved not by getting the price from the catalogue but by having the UI getting the price from the data stored in the user session cache in the server. Every data presented was stored in the user session you see.
You may think that was not a good choice but it solved the problem. You may think differently if I told you the price was a result of an intricate Insurance simulation that was yet to be recorded. So, no reference yet existed to the product selected product apart from it's type.
Sent from my iPad