security - 尝试使用 LWP::UserAgent 创建 SSL 连接时,我对领域使用什么?

标签 security perl ssl https

我已经启动了一个项目来抓取我工作的员工网站,以抓取用户(在本例中是我的)的日程安排并将数据整合到谷歌日历上。我决定使用 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/

相关文章:

mongodb - Graylog容器无法连接到MongoDB容器

perl - 为什么 "import"子程序在 Perl 中没有大写

python - `if __name__ == "__main_ _": ` 这样的成语有设计模式的名字吗?

ssl - YouTube SSL 证书如何工作,上面写着 *.google.com

google-app-engine - 为 App Engine 自定义域提供了错误的 SSL 证书

java - EJB3 @RunAs 注释和安全性

javascript - AngularJS - 如何使控制台或恶意攻击无法访问 token ?

python - Python 内置函数 `all` 和 `any` 的 Perl 挂件

apache - 使用现有证书的 Apache 中的 SSL 错误

performance - 为什么我们将结果发送给用户时需要 HTTPS