How do web servers enforce the same-origin policy?
        Posted  
        
            by 
                BBnyc
            
        on Programmers
        
        See other posts from Programmers
        
            or by BBnyc
        
        
        
        Published on 2013-11-05T18:20:56Z
        Indexed on 
            2013/11/05
            22:12 UTC
        
        
        Read the original article
        Hit count: 255
        
I'm diving deeper into developing RESTful APIs and have so far worked with a few different frameworks to achieve this. Of course I've run into the same-origin policy, and now I'm wondering how web servers (rather than web browsers) enforce it. From what I understand, some enforcing seems to happen on the browser's end (e.g., honoring a Access-Control-Allow-Origin header received from a server). But what about the server?
For example, let's say a web server is hosting a Javascript web app that accesses an API, also hosted on that server. I assume that server would enforce the same-origin policy --- so that only the javascript that is hosted on that server would be allowed to access the API. This would prevent someone else from writing a javascript client for that API and hosting it on another site, right? So how would a web server be able to stop a malicious client that would try to make AJAX requests to its api endpoints while claiming to be running javascript that originated from that same web server? What's the way most popular servers (Apache, nginx) protect against this kind of attack? Or is my understanding of this somehow off the mark?
Or is the cross-origin policy only enforced on the client end?
© Programmers or respective owner