【问题标题】:Send the request to Proxy server from Web server从 Web 服务器向代理服务器发送请求
【发布时间】:2019-06-13 01:30:38
【问题描述】:

我在python 3中做了一个代理服务器。它监听4444端口。它基本上接收来自客户端的请求并将其发送到服务器。我想将它用作我的 Dvwa 服务器的防火墙。因此向代理添加了另一个功能。它的作用是,在将请求发送到 DVWA 服务器之前,它会验证输入。

但问题是,客户端必须在浏览器中配置其代理设置才能使用我的代理服务器。有没有办法在不配置浏览器设置的情况下访问代理。基本上我想托管代理服务器而不是原始的 Web 服务器。这样所有的流量都会在到达网络服务器之前通过代理。

提前谢谢...

【问题讨论】:

    标签: proxy network-security


    【解决方案1】:

    您没有说您的 Python3 代理是否与 DVWA 托管在同一台机器上。

    假设是这样,解决方案很简单:反向代理配置。您的代理透明地接受请求并将其转发到您的服务器,然后服务器处理它们并通过代理将它们发送回客户端。

    1. 让您的代理监听端口 80
    2. 让 DVWA 监听 80 以外的端口,以免发生冲突(例如 8080)
    3. 您的代理现在正在接收对 IP/主机名的请求,否则这些请求会转到 DVWA,然后照常转发它们。

    客户端/Web 浏览器并不明智地发现任何事情都发生了变化。无需更改设置。

    鉴于您在问题中提供的信息,这是最好的情况。不幸的是,在不了解网络布局、机器所在位置以及项目意图的情况下,我无法提供任何替代解决方案。需要考虑的一些事项:

    • 您是否对正在构建的这个中间件进行了适当的关注点分离?
    • 代理的目的是什么?
    • 是用于调试/观察流量吗?
    • 您是否真的在尝试构建 Web 应用程序防火墙?

    【讨论】:

    • 我实际上正在构建一个 Web 应用程序防火墙。我想将我的代理用作防火墙。但是没有人故意向代理发送请求对吗?这就是为什么我希望我的服务器接受来自代理的请求,否则将其转发给代理,以便代理验证请求并将其再次发送到 Web 服务器。
    • 我认为您可能会从更多地了解不同类型的代理如何工作中受益。有一些合法的用例,浏览器将其请求显式转发给代理(即转发代理)。或者,类似防火墙的代理将安装在网关上,任何对后端服务器的请求都必须通过它(即反向代理)。
    • 来自 Cloudflare(代理专家!)的 article 很好地说明了差异。就像 article 关于 WAF 一样。
    猜你喜欢
    • 2019-04-19
    • 1970-01-01
    • 2012-12-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-24
    • 1970-01-01
    • 2012-09-15
    相关资源
    最近更新 更多