I understand that the init keyword in anchor creates and set the default values of an account ,while the ini_if_needed does the same thing and also doesn’t throw an error if the account has already been created/initialized. A use case I can think of about the init_if_needed is a case of a staking smart contract in which when a user stakes,the amount staked is mapped to his address through PDA, In that case,if a user already staked and wanna stake again, there is no need in creating/mapping a new account with a PDA. The already existing one can be used. My question is,
What are the security vulnerabilities of this use case
How can it be solved.