Git Product home page Git Product logo

Comments (2)

adamdbradley avatar adamdbradley commented on July 18, 2024 1

For any CORS issues, you'll need to setup a proxy the correct headers can be added by the server: https://github.com/BuilderIO/partytown/wiki/Proxying-Requests#configuring-url-proxies

from partytown.

johnfmorton avatar johnfmorton commented on July 18, 2024

I had CORS issues and read the link about proxies above. I have a working solution, but I'd like feedback.

Let's say my site is at https://example.com. I set up a new domain at proxy.example.com to act as the proxy for the primary site's Partytown calls. I've got a single file, index.php, in the webserver at proxy.example.com. Here is the content of that file:

https://gist.github.com/johnfmorton/50fb6ee911983a536a7fbfb5c1c3181d

Also, in the nginx.config for the proxy.example.com server, I have added a header to allow example.com.

add_header 'Access-Control-Allow-Origin' 'https://example.com';

In my tests, this proxy does the job. I'm seeing the analytics coming back from Google Analytics that I expect.

But what am I missing? Here's are the guardrails I've got in place.

  • I'm checking the headers of incoming requests and only allowing the proxy to be used when I see what I expect.
  • I only have "allow origin" headers for the server I want to use the proxy.
  • I'm logging metrics (in a very basic way) to a file to see what's happening to the proxy.

How could this proxy be abused? How can it be improved?

Any feedback is greatly appreciated.

Thanks.

from partytown.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.