Cross-site request forgery is a common malicious exploit of websites. It occurs when unauthorised commands are transmitted from a user that a web application trusts. The user is usually logged into the website, so they have a higher level of privileges, allowing the hacker to transfer funds, obtain account information or gain access to sensitive information. There are many ways for hackers to transmit forged commands including hidden forms, AJAX, and image tags. The user is not aware that the command has been sent and the website believes that the command has come from an authenticated user. The main difference between an XSS and CSRF attack is that the user must be logged in and trusted by a website for a CSRF wesbite hacking attack to work. Website owners can prevent CSRF attacks by checking HTTP headers to verify where the request is coming from and check CSRF tokens in web forms. These checks will ensure that the request has come from a page inside the web application and not an external source.