我已经启动了一个项目来抓取我工作的员工网站,以抓取用户(在本例中是我的)的日程安排并将数据整合到谷歌日历上。我决定使用 Perl 和 LWP。
问题是,在尝试设置 SSL 协商时,我不知道为“领域”做了什么。
例如:( http://www.sciencemedianetwork.org/wiki/Form_submission_with_LWP,_https,_and_authentication )
# ...
my $ua = new LWP::UserAgent;
$ua->protocols_allowed( [ 'http','https'] );
$ua->credentials('some.server:443',**'realm'**,'username','password');
# ...
我查看了我的浏览器可以告诉我的所有内容,并查看了 wireshark 数据包捕获,试图找到任何东西,但无济于事。我假设 credentials() 的第二个参数不是可选的。
我在哪里可以找到我应该使用的“领域”?
最佳答案
凭据
用于 HTTP 身份验证协议(protocol) (RFC 2617) (Wikipedia)。
服务器可以质询客户端以验证其自身。此响应包含一个名为“realm”的字符串,它告诉客户端需要什么身份验证。这允许同一域下的同一服务器请求对不同的事物进行身份验证,例如在可能存在“用户密码”和“管理员密码”的内容管理系统中,这将是两个不同的领域。
在浏览器中,这个领域将显示在用户名和密码框旁边,允许用户输入正确的密码。
要发现领域,请导航到需要身份验证的页面并查找 WWW-Authenticate
header 。
请注意,随着 session cookie 的使用越来越频繁,HTTP 身份验证变得非常不常见。要处理此类身份验证方案,请确保您的 LWP::UserAgent
具有附加的 cookie 存储,然后在访问您的实际目标页面之前浏览登录表单。使用 WWW::Mechanize
往往会使这更容易。
关于security - 尝试使用 LWP::UserAgent 创建 SSL 连接时,我对领域使用什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21787420/