package handlers // DO NOT EDIT THIS FILE. It is automatically generated by ladder/handlers/api_modifiers_codegen/api_modifiers_codegen.go // The purpose of this is to produce an API reponse listing all the available modifier, their parameters and usage instructions. // for use in proxychains. import ( "github.com/everywall/ladder/proxychain/responsemodifiers/api" ) type ModifiersAPIResponse struct { Success bool `json:"success"` Error api.ErrorDetails `json:"error"` Result Modifiers `json:"result"` } type Modifiers struct { RequestModifiers []Modifier `json:"requestmodifiers"` ResponseModifiers []Modifier `json:"responsemodifiers"` } type Modifier struct { Name string `json:"name"` Description string `json:"description"` CodeEditLink string `json:"code_edit_link"` Params []Param `json:"params"` } type Param struct { Name string `json:"name"` Type string `json:"type"` } var AllMods Modifiers = Modifiers{ RequestModifiers: []Modifier{ { Name: "AddCacheBusterQuery", Description: "AddCacheBusterQuery modifies query params to add a random parameter key In order to get the upstream network stack to serve a fresh copy of the page.", CodeEditLink: "https://github.com/joncrangle/ladder.git/edit/proxy_v2/playground/proxychain/requestmodifiers/add_cache_buster_query.go", Params: []Param{ }, }, { Name: "ForwardRequestHeaders", Description: "ForwardRequestHeaders forwards the requests headers sent from the client to the upstream server", CodeEditLink: "https://github.com/joncrangle/ladder.git/edit/proxy_v2/playground/proxychain/requestmodifiers/forward_request_headers.go", Params: []Param{ }, }, { Name: "MasqueradeAsGoogleBot", Description: "MasqueradeAsGoogleBot modifies user agent and x-forwarded for to appear to be a Google Bot", CodeEditLink: "https://github.com/joncrangle/ladder.git/edit/proxy_v2/playground/proxychain/requestmodifiers/masquerade_as_trusted_bot.go", Params: []Param{ }, }, { Name: "MasqueradeAsBingBot", Description: "MasqueradeAsBingBot modifies user agent and x-forwarded for to appear to be a Bing Bot", CodeEditLink: "https://github.com/joncrangle/ladder.git/edit/proxy_v2/playground/proxychain/requestmodifiers/masquerade_as_trusted_bot.go", Params: []Param{ }, }, { Name: "MasqueradeAsWaybackMachineBot", Description: "MasqueradeAsWaybackMachineBot modifies user agent and x-forwarded for to appear to be a archive.org (wayback machine) Bot", CodeEditLink: "https://github.com/joncrangle/ladder.git/edit/proxy_v2/playground/proxychain/requestmodifiers/masquerade_as_trusted_bot.go", Params: []Param{ }, }, { Name: "MasqueradeAsFacebookBot", Description: "MasqueradeAsFacebookBot modifies user agent and x-forwarded for to appear to be a Facebook Bot (link previews?)", CodeEditLink: "https://github.com/joncrangle/ladder.git/edit/proxy_v2/playground/proxychain/requestmodifiers/masquerade_as_trusted_bot.go", Params: []Param{ }, }, { Name: "MasqueradeAsYandexBot", Description: "MasqueradeAsYandexBot modifies user agent and x-forwarded for to appear to be a Yandex Spider Bot", CodeEditLink: "https://github.com/joncrangle/ladder.git/edit/proxy_v2/playground/proxychain/requestmodifiers/masquerade_as_trusted_bot.go", Params: []Param{ }, }, { Name: "MasqueradeAsBaiduBot", Description: "MasqueradeAsBaiduBot modifies user agent and x-forwarded for to appear to be a Baidu Spider Bot", CodeEditLink: "https://github.com/joncrangle/ladder.git/edit/proxy_v2/playground/proxychain/requestmodifiers/masquerade_as_trusted_bot.go", Params: []Param{ }, }, { Name: "MasqueradeAsDuckDuckBot", Description: "MasqueradeAsDuckDuckBot modifies user agent and x-forwarded for to appear to be a DuckDuckGo Bot", CodeEditLink: "https://github.com/joncrangle/ladder.git/edit/proxy_v2/playground/proxychain/requestmodifiers/masquerade_as_trusted_bot.go", Params: []Param{ }, }, { Name: "MasqueradeAsYahooBot", Description: "MasqueradeAsYahooBot modifies user agent and x-forwarded for to appear to be a Yahoo Bot", CodeEditLink: "https://github.com/joncrangle/ladder.git/edit/proxy_v2/playground/proxychain/requestmodifiers/masquerade_as_trusted_bot.go", Params: []Param{ }, }, { Name: "ModifyDomainWithRegex", Description: "", CodeEditLink: "https://github.com/joncrangle/ladder.git/edit/proxy_v2/playground/proxychain/requestmodifiers/modify_domain_with_regex.go", Params: []Param{ {Name: "matchRegex", Type: "string"}, {Name: "replacement", Type: "string"}, }, }, { Name: "SetOutgoingCookie", Description: "SetOutgoingCookie modifes a specific cookie name by modifying the request cookie headers going to the upstream server. If the cookie name does not already exist, it is created.", CodeEditLink: "https://github.com/joncrangle/ladder.git/edit/proxy_v2/playground/proxychain/requestmodifiers/modify_outgoing_cookies.go", Params: []Param{ {Name: "name", Type: "string"}, {Name: "val", Type: "string"}, }, }, { Name: "SetOutgoingCookies", Description: "SetOutgoingCookies modifies a client request's cookie header to a raw Cookie string, overwriting existing cookies", CodeEditLink: "https://github.com/joncrangle/ladder.git/edit/proxy_v2/playground/proxychain/requestmodifiers/modify_outgoing_cookies.go", Params: []Param{ {Name: "cookies", Type: "string"}, }, }, { Name: "DeleteOutgoingCookie", Description: "DeleteOutgoingCookie modifies the http request's cookies header to delete a specific request cookie going to the upstream server. If the cookie does not exist, it does not do anything.", CodeEditLink: "https://github.com/joncrangle/ladder.git/edit/proxy_v2/playground/proxychain/requestmodifiers/modify_outgoing_cookies.go", Params: []Param{ {Name: "name", Type: "string"}, }, }, { Name: "DeleteOutgoingCookies", Description: "DeleteOutgoingCookies removes the cookie header entirely, preventing any cookies from reaching the upstream server.", CodeEditLink: "https://github.com/joncrangle/ladder.git/edit/proxy_v2/playground/proxychain/requestmodifiers/modify_outgoing_cookies.go", Params: []Param{ }, }, { Name: "DeleteOutgoingCookiesExcept", Description: "DeleteOutGoingCookiesExcept prevents non-whitelisted cookies from being sent from the client to the upstream proxy server. Cookies whose names are in the whitelist are not removed.", CodeEditLink: "https://github.com/joncrangle/ladder.git/edit/proxy_v2/playground/proxychain/requestmodifiers/modify_outgoing_cookies.go", Params: []Param{ {Name: "whitelist", Type: "&{Ellipsis:12476 Elt:string}"}, }, }, { Name: "ModifyPathWithRegex", Description: "", CodeEditLink: "https://github.com/joncrangle/ladder.git/edit/proxy_v2/playground/proxychain/requestmodifiers/modify_path_with_regex.go", Params: []Param{ {Name: "matchRegex", Type: "string"}, {Name: "replacement", Type: "string"}, }, }, { Name: "ModifyQueryParams", Description: "ModifyQueryParams replaces query parameter values in URL's query params in a ProxyChain's URL. If the query param key doesn't exist, it is created.", CodeEditLink: "https://github.com/joncrangle/ladder.git/edit/proxy_v2/playground/proxychain/requestmodifiers/modify_query_params.go", Params: []Param{ {Name: "key", Type: "string"}, {Name: "value", Type: "string"}, }, }, { Name: "SetRequestHeader", Description: "SetRequestHeader modifies a specific outgoing header This is the header that the upstream server will see.", CodeEditLink: "https://github.com/joncrangle/ladder.git/edit/proxy_v2/playground/proxychain/requestmodifiers/modify_request_headers.go", Params: []Param{ {Name: "name", Type: "string"}, {Name: "val", Type: "string"}, }, }, { Name: "DeleteRequestHeader", Description: "DeleteRequestHeader modifies a specific outgoing header This is the header that the upstream server will see.", CodeEditLink: "https://github.com/joncrangle/ladder.git/edit/proxy_v2/playground/proxychain/requestmodifiers/modify_request_headers.go", Params: []Param{ {Name: "name", Type: "string"}, }, }, { Name: "RequestArchiveIs", Description: "RequestArchiveIs modifies a ProxyChain's URL to request an archived version from archive.is", CodeEditLink: "https://github.com/joncrangle/ladder.git/edit/proxy_v2/playground/proxychain/requestmodifiers/request_archive_is.go", Params: []Param{ }, }, { Name: "RequestGoogleCache", Description: "RequestGoogleCache modifies a ProxyChain's URL to request its Google Cache version.", CodeEditLink: "https://github.com/joncrangle/ladder.git/edit/proxy_v2/playground/proxychain/requestmodifiers/request_google_cache.go", Params: []Param{ }, }, { Name: "RequestWaybackMachine", Description: "RequestWaybackMachine modifies a ProxyChain's URL to request the wayback machine (archive.org) version.", CodeEditLink: "https://github.com/joncrangle/ladder.git/edit/proxy_v2/playground/proxychain/requestmodifiers/request_wayback_machine.go", Params: []Param{ }, }, { Name: "ResolveWithGoogleDoH", Description: "ResolveWithGoogleDoH modifies a ProxyChain's client to make the request by resolving the URL using Google's DNS over HTTPs service", CodeEditLink: "https://github.com/joncrangle/ladder.git/edit/proxy_v2/playground/proxychain/requestmodifiers/resolve_with_google_doh.go", Params: []Param{ }, }, { Name: "SpoofOrigin", Description: "SpoofOrigin modifies the origin header if the upstream server returns a Vary header it means you might get a different response if you change this", CodeEditLink: "https://github.com/joncrangle/ladder.git/edit/proxy_v2/playground/proxychain/requestmodifiers/spoof_origin.go", Params: []Param{ {Name: "url", Type: "string"}, }, }, { Name: "HideOrigin", Description: "HideOrigin modifies the origin header so that it is the original origin, not the proxy", CodeEditLink: "https://github.com/joncrangle/ladder.git/edit/proxy_v2/playground/proxychain/requestmodifiers/spoof_origin.go", Params: []Param{ }, }, { Name: "SpoofReferrer", Description: "SpoofReferrer modifies the referrer header. It is useful if the page can be accessed from a search engine or social media site, but not by browsing the website itself. if url is \"\", then the referrer header is removed.", CodeEditLink: "https://github.com/joncrangle/ladder.git/edit/proxy_v2/playground/proxychain/requestmodifiers/spoof_referrer.go", Params: []Param{ {Name: "url", Type: "string"}, }, }, { Name: "HideReferrer", Description: "HideReferrer modifies the referrer header so that it is the original referrer, not the proxy", CodeEditLink: "https://github.com/joncrangle/ladder.git/edit/proxy_v2/playground/proxychain/requestmodifiers/spoof_referrer.go", Params: []Param{ }, }, { Name: "SpoofReferrerFromBaiduSearch", Description: "SpoofReferrerFromBaiduSearch modifies the referrer header pretending to be from a BaiduSearch", CodeEditLink: "https://github.com/joncrangle/ladder.git/edit/proxy_v2/playground/proxychain/requestmodifiers/spoof_referrer_from_baidu_post.go", Params: []Param{ }, }, { Name: "SpoofReferrerFromBingSearch", Description: "SpoofReferrerFromBingSearch modifies the referrer header pretending to be from a bing search site", CodeEditLink: "https://github.com/joncrangle/ladder.git/edit/proxy_v2/playground/proxychain/requestmodifiers/spoof_referrer_from_bing_search.go", Params: []Param{ }, }, { Name: "SpoofReferrerFromGoogleSearch", Description: "SpoofReferrerFromGoogleSearch modifies the referrer header pretending to be from a google search site", CodeEditLink: "https://github.com/joncrangle/ladder.git/edit/proxy_v2/playground/proxychain/requestmodifiers/spoof_referrer_from_google_search.go", Params: []Param{ }, }, { Name: "SpoofReferrerFromLinkedInPost", Description: "SpoofReferrerFromLinkedInPost modifies the referrer header pretending to be from a linkedin post", CodeEditLink: "https://github.com/joncrangle/ladder.git/edit/proxy_v2/playground/proxychain/requestmodifiers/spoof_referrer_from_linkedin_post.go", Params: []Param{ }, }, { Name: "SpoofReferrerFromNaverSearch", Description: "SpoofReferrerFromNaverSearch modifies the referrer header pretending to be from a Naver search (popular in South Korea)", CodeEditLink: "https://github.com/joncrangle/ladder.git/edit/proxy_v2/playground/proxychain/requestmodifiers/spoof_referrer_from_naver_post.go", Params: []Param{ }, }, { Name: "SpoofReferrerFromPinterestPost", Description: "SpoofReferrerFromPinterestPost modifies the referrer header pretending to be from a pinterest post", CodeEditLink: "https://github.com/joncrangle/ladder.git/edit/proxy_v2/playground/proxychain/requestmodifiers/spoof_referrer_from_pinterest_post.go", Params: []Param{ }, }, { Name: "SpoofReferrerFromQQPost", Description: "SpoofReferrerFromQQPost modifies the referrer header pretending to be from a QQ post (popular social media in China)", CodeEditLink: "https://github.com/joncrangle/ladder.git/edit/proxy_v2/playground/proxychain/requestmodifiers/spoof_referrer_from_qq_post.go", Params: []Param{ }, }, { Name: "SpoofReferrerFromRedditPost", Description: "SpoofReferrerFromRedditPost modifies the referrer header pretending to be from a reddit post", CodeEditLink: "https://github.com/joncrangle/ladder.git/edit/proxy_v2/playground/proxychain/requestmodifiers/spoof_referrer_from_reddit_post.go", Params: []Param{ }, }, { Name: "SpoofReferrerFromTumblrPost", Description: "SpoofReferrerFromTumblrPost modifies the referrer header pretending to be from a tumblr post", CodeEditLink: "https://github.com/joncrangle/ladder.git/edit/proxy_v2/playground/proxychain/requestmodifiers/spoof_referrer_from_tumblr_post.go", Params: []Param{ }, }, { Name: "SpoofReferrerFromTwitterPost", Description: "SpoofReferrerFromTwitterPost modifies the referrer header pretending to be from a twitter post", CodeEditLink: "https://github.com/joncrangle/ladder.git/edit/proxy_v2/playground/proxychain/requestmodifiers/spoof_referrer_from_twitter_post.go", Params: []Param{ }, }, { Name: "SpoofReferrerFromVkontaktePost", Description: "SpoofReferrerFromVkontaktePost modifies the referrer header pretending to be from a vkontakte post (popular in Russia)", CodeEditLink: "https://github.com/joncrangle/ladder.git/edit/proxy_v2/playground/proxychain/requestmodifiers/spoof_referrer_from_vkontake_post.go", Params: []Param{ }, }, { Name: "SpoofReferrerFromWeiboPost", Description: "SpoofReferrerFromWeiboPost modifies the referrer header pretending to be from a Weibo post (popular in China)", CodeEditLink: "https://github.com/joncrangle/ladder.git/edit/proxy_v2/playground/proxychain/requestmodifiers/spoof_referrer_from_weibo_post.go", Params: []Param{ }, }, { Name: "SpoofUserAgent", Description: "SpoofUserAgent modifies the user agent", CodeEditLink: "https://github.com/joncrangle/ladder.git/edit/proxy_v2/playground/proxychain/requestmodifiers/spoof_user_agent.go", Params: []Param{ {Name: "ua", Type: "string"}, }, }, { Name: "SpoofXForwardedFor", Description: "SpoofXForwardedFor modifies the X-Forwarded-For header in some cases, a forward proxy may interpret this as the source IP", CodeEditLink: "https://github.com/joncrangle/ladder.git/edit/proxy_v2/playground/proxychain/requestmodifiers/spoof_x_forwarded_for.go", Params: []Param{ {Name: "ip", Type: "string"}, }, }, }, ResponseModifiers: []Modifier{ { Name: "APIContent", Description: "APIContent creates an JSON representation of the article and returns it as an API response.", CodeEditLink: "https://github.com/joncrangle/ladder.git/edit/proxy_v2/playground/proxychain/responsemodifiers/api_content.go", Params: []Param{ }, }, { Name: "BlockElementRemoval", Description: "BlockElementRemoval prevents paywall javascript from removing a particular element by detecting the removal, then immediately reinserting it. This is useful when a page will return a \"fake\" 404, after flashing the content briefly. If the /outline/ API works, but the regular API doesn't, try this modifier.", CodeEditLink: "https://github.com/joncrangle/ladder.git/edit/proxy_v2/playground/proxychain/responsemodifiers/block_element_removal.go", Params: []Param{ {Name: "cssSelector", Type: "string"}, }, }, { Name: "BlockThirdPartyScripts", Description: "BlockThirdPartyScripts rewrites HTML and injects JS to block all third party JS from loading.", CodeEditLink: "https://github.com/joncrangle/ladder.git/edit/proxy_v2/playground/proxychain/responsemodifiers/block_third_party_scripts.go", Params: []Param{ }, }, { Name: "BypassCORS", Description: "BypassCORS modifies response headers to prevent the browser from enforcing any CORS restrictions. This should run at the end of the chain.", CodeEditLink: "https://github.com/joncrangle/ladder.git/edit/proxy_v2/playground/proxychain/responsemodifiers/bypass_cors.go", Params: []Param{ }, }, { Name: "BypassContentSecurityPolicy", Description: "BypassContentSecurityPolicy modifies response headers to prevent the browser from enforcing any CSP restrictions. This should run at the end of the chain.", CodeEditLink: "https://github.com/joncrangle/ladder.git/edit/proxy_v2/playground/proxychain/responsemodifiers/bypass_csp.go", Params: []Param{ }, }, { Name: "SetContentSecurityPolicy", Description: "SetContentSecurityPolicy modifies response headers to a specific CSP", CodeEditLink: "https://github.com/joncrangle/ladder.git/edit/proxy_v2/playground/proxychain/responsemodifiers/bypass_csp.go", Params: []Param{ {Name: "csp", Type: "string"}, }, }, { Name: "DeleteLocalStorageData", Description: "DeleteLocalStorageData deletes localstorage cookies. If the page works once in a fresh incognito window, but fails for subsequent loads, try this response modifier alongside DeleteSessionStorageData and DeleteIncomingCookies", CodeEditLink: "https://github.com/joncrangle/ladder.git/edit/proxy_v2/playground/proxychain/responsemodifiers/delete_localstorage_data.go", Params: []Param{ }, }, { Name: "DeleteSessionStorageData", Description: "DeleteSessionStorageData deletes localstorage cookies. If the page works once in a fresh incognito window, but fails for subsequent loads, try this response modifier alongside DeleteLocalStorageData and DeleteIncomingCookies", CodeEditLink: "https://github.com/joncrangle/ladder.git/edit/proxy_v2/playground/proxychain/responsemodifiers/delete_sessionstorage_data.go", Params: []Param{ }, }, { Name: "ForwardResponseHeaders", Description: "ForwardResponseHeaders forwards the response headers from the upstream server to the client", CodeEditLink: "https://github.com/joncrangle/ladder.git/edit/proxy_v2/playground/proxychain/responsemodifiers/forward_response_headers.go", Params: []Param{ }, }, { Name: "GenerateReadableOutline", Description: "GenerateReadableOutline creates an reader-friendly distilled representation of the article. This is a reliable way of bypassing soft-paywalled articles, where the content is hidden, but still present in the DOM.", CodeEditLink: "https://github.com/joncrangle/ladder.git/edit/proxy_v2/playground/proxychain/responsemodifiers/generate_readable_outline.go", Params: []Param{ }, }, { Name: "InjectScriptBeforeDOMContentLoaded", Description: "InjectScriptBeforeDOMContentLoaded modifies HTTP responses to inject a JS before DOM Content is loaded (script tag in head)", CodeEditLink: "https://github.com/joncrangle/ladder.git/edit/proxy_v2/playground/proxychain/responsemodifiers/inject_script.go", Params: []Param{ {Name: "js", Type: "string"}, }, }, { Name: "InjectScriptAfterDOMContentLoaded", Description: "InjectScriptAfterDOMContentLoaded modifies HTTP responses to inject a JS after DOM Content is loaded (script tag in head)", CodeEditLink: "https://github.com/joncrangle/ladder.git/edit/proxy_v2/playground/proxychain/responsemodifiers/inject_script.go", Params: []Param{ {Name: "js", Type: "string"}, }, }, { Name: "InjectScriptAfterDOMIdle", Description: "InjectScriptAfterDOMIdle modifies HTTP responses to inject a JS after the DOM is idle (ie: js framework loaded)", CodeEditLink: "https://github.com/joncrangle/ladder.git/edit/proxy_v2/playground/proxychain/responsemodifiers/inject_script.go", Params: []Param{ {Name: "js", Type: "string"}, }, }, { Name: "DeleteIncomingCookies", Description: "DeleteIncomingCookies prevents ALL cookies from being sent from the proxy server back down to the client.", CodeEditLink: "https://github.com/joncrangle/ladder.git/edit/proxy_v2/playground/proxychain/responsemodifiers/modify_incoming_cookies.go", Params: []Param{ {Name: "_", Type: "&{Ellipsis:18780 Elt:string}"}, }, }, { Name: "DeleteIncomingCookiesExcept", Description: "DeleteIncomingCookiesExcept prevents non-whitelisted cookies from being sent from the proxy server to the client. Cookies whose names are in the whitelist are not removed.", CodeEditLink: "https://github.com/joncrangle/ladder.git/edit/proxy_v2/playground/proxychain/responsemodifiers/modify_incoming_cookies.go", Params: []Param{ {Name: "whitelist", Type: "&{Ellipsis:19325 Elt:string}"}, }, }, { Name: "SetIncomingCookies", Description: "SetIncomingCookies adds a raw cookie string being sent from the proxy server down to the client", CodeEditLink: "https://github.com/joncrangle/ladder.git/edit/proxy_v2/playground/proxychain/responsemodifiers/modify_incoming_cookies.go", Params: []Param{ {Name: "cookies", Type: "string"}, }, }, { Name: "SetIncomingCookie", Description: "SetIncomingCookie modifies a specific cookie in the response from the proxy server to the client.", CodeEditLink: "https://github.com/joncrangle/ladder.git/edit/proxy_v2/playground/proxychain/responsemodifiers/modify_incoming_cookies.go", Params: []Param{ {Name: "name", Type: "string"}, {Name: "val", Type: "string"}, }, }, { Name: "ModifyIncomingScriptsWithRegex", Description: "ModifyIncomingScriptsWithRegex modifies all incoming javascript (application/javascript and inline