Silicone is fine to use but can be messy and very difficult to remove excess. Plumbers putty is perfectly fine for the drain flange. Many faucets have a rubber gasket seal that goes under them and that eliminates the need for putty. If yours doesn't have such a seal and you want some extra sealant protection, I recommend you use a bead of latex adhesive caulk like Phenoseal, or Polyseamseal. These products are water based and it's easy to thoroughly clean up any squeeze out. Use the same latex caulk to bed the top. Not a lot-- just a few dabs spaced around the cabinet top where it will contact the underside of the sink. Once it dries, it won't go anywhere. There is no need for a mechanical fastener.