如何使用登录凭据远程登录外部站点?

时间:2018-03-13 16:13:57

标签: python nginx web proxy server

我拥有网站的用户名/密码凭据,例如http://website.com/login/。我如何代理该网站(使用我自己的服务器),以便我以编程方式传递我的登录凭据并使用我的代理服务器,我可以访问该网站而无需登录。简而言之,凭据由我的代理服务器发送。注意:http://website.com/login/不使用基本身份验证,而是使用HTML表单,并且还注意我知道我可以使用python请求库实现类似的功能,但我不想仅仅检索HTML内容。

2 个答案:

答案 0 :(得分:0)

您可以在浏览器上通过开发人员工具登录时观察浏览器发送的POST请求。从这里,您将知道POST请求的去向以及传递的参数。登录只需要使用所需参数向URL发出POST请求。您甚至可以使用cURL使用 cookie jar 来保存cookie。验证后,您可以在整个网站上使用cookie。

我不确定您在通过登录后计划做什么。如果您只是想从浏览器浏览网站而无需每次都登录,也许您可​​以在登录后编辑cookie以扩展会话。或者为Greasemonkey / Tampermonkey写一个 userscript 来制作一个POST请求身份验证。

更新:16/03/2018

如果您对所公开的密码感到满意,可以设置一个简单的HTML页面,其中包含隐藏在表单中的用户名和密码字段,然后使用JS提交表单。

你可以很容易地将nginx配置为代理,就像gautamaggarwal建议的那样。但复杂的是身份验证部分,代理必须代表用户与第三方网站进行身份验证。我不确定是否有可能,但也许thisthis可能会有所帮助。如果第三方网站有一个用于身份验证的API,这肯定会省去很多麻烦:)

答案 1 :(得分:0)

根据sykez回答中的评论,我得出的结论是,您希望将您网站上的链接重定向到受您拥有密码的身份验证限制的其他网站。因此,您可以做的是在任何Web框架中为您的站点创建类似myserver.com/enter的句柄,并以编程方式执行。

选择任何一个轻量级的mvc框架,并为您完成这项工作。如果您了解Python,那么烧瓶或瓶子将是一个不错的选择。创建一个url和一个视图(其他语言框架中的控制器,如PHP)并从那里发出请求。此部分将作为代理来处理您的请求,这些请求将由您的代理代码进行身份验证。这是一种方法,您可以通过这种方式获得更多控制权。 另一种方法是使用nginx。您可以查看此链接

https://serverfault.com/questions/230749/how-to-use-nginx-to-proxy-to-a-host-requiring-authentication

我希望它有所帮助!

相关问题