I need a way to ensure that transactions coming to my non-smartcontract Ethereum wallet can't be reversed. Is it enough to check that each incoming transaction has as least N confirmations just like in Bitcoin world, or I should also ensure that the "data" field ("input" in Parity API) is empty because otherwise it can be exploited in some way?
It's enough to check that each incoming transaction has at least n confirmations.
Wait for X confirmations to ensure that the transactions are part of the cannonical chain.
For more on msg.data check out What is msg.data?