How can the CSRF happen if browsers do not allow cross-origin requests by default?
Here is a brief CSRF overview, which is relevant for the question. CSRF (i.e. cross-site request forgery) is a type of attack. For the attack to happen, the following points should apply:
Back-end (BE) app should use cookies for authentication.
Browser should submit cookies to the BE app with each call automatically.
The victim of the CSRF should at first visit the front-end (FE) part of an app and authenticate into the app (i.e. set the authentication related cookies in the browser).
Then the victim should visit a malicious website.
Now a malicious website is going to run a malicious request to the BE app. The request will be authenticated, because browser will send the respective cookies automatically.
The 5 is the instance of the CSRF.
Now, we can say for sure that the malicious website won't have the same origin as the BE app. So, the browser will block the call from the malicious website to our BE app and no attack will happen.
I am feeling that I am missing something here, because whenever I read about the CSRF no one says that there is the cross-origin requests prevention by browser by default.
So, is it correct that there is no way for the CSRF to happen if a browser prevents the cross-origin requests? And as a result the CSRF is not possible in the world of the modern browsers?