Understanding `tx.origin` vs `msg.sender` in Ethereum Smart Contracts

Security Risks and Best Practices