chgeuer

chgeuer

Which library / approach would be advisable for building an MITM-style HTTP(s) Proxy, i.e. for intercepting outgoing web traffic? Effectively inspect (and do side effects) based on outgoing traffic.

I found GitHub - houli/http-proxy: A HTTP(S) Proxy written in Elixir · GitHub (9 years old, work in progress) and GitHub - KazuCocoa/http_proxy: http proxy with Elixir. wait request with multi port and forward to each URIs · GitHub, but there’s no real getting-started sample. Given that a proxy isn’t just a regular web server, I’m not sure this thing can easily be plugged into a web server like Cowboy/Bandit/Phoenix…

Thanks, Christian

Showing Posts 1 to 8

D4no0

D4no0

How so? The requirements may widely wary, however I can see how you could have a combination of phoenix and a http client.

sorax

sorax

do you know https://github.com/tallarium/reverse_proxy_plug?
we use it for “shielding” an old website and injecting css into the page

kind regards, robert

arcanemachine

arcanemachine

Not sure if this is helpful, but I use this service a lot for finding Elixir packages:

chgeuer

chgeuer OP

Thanks @sorax . I had a look at that, but it seems targeted as “reverse proxy”, like NGINX, right? That looked like a component I can put in front of my web server application, and route incoming requests different ways, like an API Gateway.

I’m looking for a component used by a web browser, before going out to the Internet. Is reverse_proxy_plug usable for that, too? The proxy protocol looks slightly different than HTTP

chgeuer

chgeuer OP

Fully agree that I want the proxy server to run on a solid foundation (like Phoenix). The thing that’s unclear is how to host a component that talks the proxy protocol to the client, instead of plain HTTP.

chgeuer

chgeuer OP

Thanks for the link, wasn’t aware of the search capabilities of elixir-toolbox.dev… However, as far as I can see, all these are either proxies for special protocols (SIP, Kafka, Telegram MProto) or are ‘reverse proxies’ (like nginx).

foucist

foucist

I guess the confusion is reverse_proxy_plug could be considered a forward proxy given that it would be used to access an external website. However, it can still be considered a “reverse proxy” between the user & the elixir server.

jstimps

jstimps

It sounds like you’re looking for an http server that supports the CONNECT protocol, such as the standalone app squid.

I haven’t personally seen any Erlang or Elixir http servers that have explicit documented support of HTTP CONNECT for proxying, but cowboy does appear to support enable_connect_protocol for Websockets on HTTP2. Might take a bit of experimentation with cowboy’s configuration to determine if it suits your need.

— All posts loaded —

Where Next? Top

Trending in Questions Top

stjefim
Hello! Suppose you are building workflow (order / task / payment) processing system with the following requirements: Each workflow con...
New
Blokh
Hey guys, I’ve got a huge CSV ( around 10 GB ) that needs to be processed hourly Do you guys have any suggestions what is the best prac...
New
roeland
Kia ora, We have been using elixir-google-api to connect to Google Drive. However, with the updates to Tesla due to CVEs this is now bro...
New
kszambelanczyk
Hello! Could someone please give me a help/sample code, how to delete a file from s3 using waffle/waffle_ecto from Phoenix app. I creat...
New
Onor.io
I have what I’ve heard referred to as a “lookup table” in my database. This is a way of assigning codes to common values. One common lo...
New
jaybe78
Hello, I’m developing a online persistent chat system (what’s app) like using elixir/dynamodb/aws for a mobile app(flutter). The diffic...
New
Trolleger
What approach to take when sending live updates to “random” users Hi! I have a question, I have a little chat app, and when I create a DM...
New

Other Trending Topics Top

garrison
Hobbes is a low-level distributed database for the Elixir programming language. Hobbes provides a simple, safe, and scalable storage lay...
New
mcass19
ExRatatui lets you cook up rich terminal UIs in Elixir, powered by Rust’s ratatui via Rustler NIFs. Build interactive terminal applicatio...
New
Damirados
Hello everyone. After busy few months I am happy to announce v0.1.0 of Emerge & Solve. They are GUI (Emerge) and State management (S...
New
netoum
Corex is an accessible, unstyled UI component library for Phoenix that integrates Zag.js state machines using Vanilla JavaScript and Live...
New
wintermeyer
There are three potential reasons for members of this forum to have a look at https://vutuv.de You are tired or annoyed of LinkedIn. Yo...
New
aseigo
ICal is a library for interacting with iCalendar data. It parses iCalendars into typed Elixir structs via ICal.from_ics, and can prepare ...
New

We're in Beta

About us Mission Statement

Options

Thread Display Mode




Thread Preview

Skip Thread Previews