add raw handler support

This commit is contained in:
Kevin Pham
2023-12-07 08:43:05 -06:00
parent 6a5b85f260
commit 4779229b32
6 changed files with 56 additions and 10 deletions

View File

@@ -34,7 +34,7 @@ func NewProxySiteHandler(opts *ProxyOptions) fiber.Handler {
SetRequestModifications(
//rx.SpoofJA3fingerprint(ja3, "Googlebot"),
rx.AddCacheBusterQuery(),
//rx.MasqueradeAsGoogleBot(),
rx.MasqueradeAsGoogleBot(),
rx.ForwardRequestHeaders(),
rx.DeleteOutgoingCookies(),
rx.SpoofReferrerFromRedditPost(),

View File

@@ -1,9 +1,51 @@
package handlers
import (
"fmt"
"ladder/proxychain"
rx "ladder/proxychain/requestmodifiers"
tx "ladder/proxychain/responsemodifiers"
"github.com/gofiber/fiber/v2"
)
func Raw(c *fiber.Ctx) error {
return nil
func NewRawProxySiteHandler(opts *ProxyOptions) fiber.Handler {
return func(c *fiber.Ctx) error {
proxychain := proxychain.
NewProxyChain().
SetFiberCtx(c).
SetRequestModifications(
rx.AddCacheBusterQuery(),
rx.MasqueradeAsGoogleBot(),
rx.ForwardRequestHeaders(),
rx.HideOrigin(),
rx.DeleteOutgoingCookies(),
rx.SpoofReferrerFromRedditPost(),
)
// no options passed in, return early
if opts == nil {
// return as plaintext, overriding any rules
proxychain.AddOnceResponseModifications(
tx.SetResponseHeader("content-type", "text/plain; charset=UTF-8"),
)
return proxychain.Execute()
}
// load ruleset
rule, exists := opts.Ruleset.GetRule(proxychain.Request.URL)
if exists {
proxychain.AddOnceRequestModifications(rule.RequestModifications...)
proxychain.AddOnceResponseModifications(rule.ResponseModifications...)
}
// return as plaintext, overriding any rules
proxychain.AddOnceResponseModifications(
tx.SetResponseHeader("content-type", "text/plain; charset=UTF-8"),
)
return proxychain.Execute()
}
}

View File

@@ -13,7 +13,7 @@ import (
func TestRaw(t *testing.T) {
app := fiber.New()
app.Get("/raw/*", Raw)
app.Get("/raw/*", NewRawProxySiteHandler(nil))
testCases := []struct {
name string