Invincibility - Use a damage detection system to detect when a unit deals way too much damage (it's a few thousand for most units.
Fog of War - There should be a trigger function to detect if a point is visible to a player, make this point somewhere players will never be able to see normally.
Gold/Lumber - Use triggers to keep track of player gold whenever they receive/use it, and check their current gold vs expected gold every few seconds.
The simpler, and in my opinion better way, would be to force LAN/Bnet play. Make a trigger that counts the number of user players in the game, and end the game if there is only one.