I think I understand what the same-origin policy is. It says that scripts and AJAX requests must come from the same origin, meaning they must have the same protocol, host, domain and port.
What I don't understand is what it actually protects against. For example, say that we have two sites: attacker.com and bank.com. I get that attacker.com can't have scripts or AJAX requests access bank.com. But...
You could use cURL to make any request you want to bank.com.
You could use the browser to make any sort of GET requests you want to bank.com
Given these things, what does the same-origin policy really protect against?