标签: authentication

如何使用Python登录网页并检索cookie供以后使用?

我想使用python下载和解析网页,但要访问它我需要设置几个cookie.因此,我需要首先通过https登录网页.登录时刻涉及向/login.php发送两个POST参数(用户名,密码).在登录请求期间,我想从响应头中检索cookie并存储它们,以便我可以在请求中使用它们来下载网页/data.php.

我怎么能在python中做到这一点(最好是2.6)?如果可能的话我只想使用内置模块.

python authentication cookies http

142
推荐指数
2
解决办法
16万
查看次数

在浏览器中存储JWT的位置?如何防范CSRF?

我知道基于cookie的身份验证.可以应用SSL和HttpOnly标志来保护来自MITM和XSS的基于cookie的身份验证.但是,需要采取更多特殊措施以保护其免受CSRF的影响.它们有点复杂.(参考)

最近,我发现JSON Web Token(JWT)作为身份验证的解决方案非常热门.我知道有关编码,解码和验证JWT的内容.但是,我不明白为什么有些网站/教程在使用JWT时不需要CSRF保护.我已经阅读了很多,并试图总结下面的问题.我只是希望有人可以提供JWT的全貌并澄清我对JWT误解的概念.

  1. 如果JWT存储在cookie中,我认为它与基于cookie的身份验证相同,除了服务器不需要有会话来验证cookie /令牌.如果没有实施特殊措施,CSRF仍存在风险.JWT不是存储在cookie中吗?

  2. 如果JWT存储在localStorage/sessionStorage中,那么没有cookie所以不需要防止CRSF.问题是如何将JWT发送到服务器.我发现这里建议使用jQuery通过ajax请求的HTTP头发送JWT.那么,只有ajax请求才能进行身份验证吗?

  3. 此外,我发现还有一个博客节目使用"授权标题"和"承载"来发送JWT.我不明白博客谈论的方法.有人可以解释一下"授权标题"和"持票人"的更多信息吗?这是否使所有请求的HTTP头传输JWT?如果是的话,CSRF怎么样?

security authentication cookies csrf jwt

142
推荐指数
6
解决办法
5万
查看次数

所有主机的MySQL root访问权限

我在远程Ubuntu机器上安装了MySQL服务器.该root用户在定义mysql.user表是这样的:

mysql> SELECT host, user, password FROM user WHERE user = 'root';
+------------------+------+-------------------------------------------+
| host             | user | password                                  |
+------------------+------+-------------------------------------------+
| localhost        | root | *xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx |
| ip-10-48-110-188 | root | *xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx |
| 127.0.0.1        | root | *xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx |
| ::1              | root | *xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx |
+------------------+------+-------------------------------------------+
Run Code Online (Sandbox Code Playgroud)

我可以root使用标准mysql客户端从同一远程计算机命令行界面访问用户.现在我想允许来自互联网上每个主机的root访问权限,所以我尝试添加以下行(它与前一个转储的第一行完全相同,除了host列):

mysql> SELECT host, user, password FROM user WHERE host = '%';
+------------------+------+-------------------------------------------+
| host             | user | …
Run Code Online (Sandbox Code Playgroud)

mysql authentication

136
推荐指数
5
解决办法
43万
查看次数

OpenID与OAuth

可能重复:
OpenID和OAuth之间有什么区别?

OpenID和oAuth之间的真正区别是什么?他们看起来和我一样.

我应该澄清,我打算在drupal中使用它们,如果这有任何区别的话.所以我想我受到drupal中可用的任何模块实现的约束.

openid authentication oauth

131
推荐指数
5
解决办法
5万
查看次数

HttpWebRequest使用基本身份验证

我正在尝试通过一个身份验证请求来模仿我们习惯在为此行为设置IIS时看到的"基本身份验证请求".

URL为:https
://telematicoprova.agenziadogane.it/TelematicoServiziDiUtilitaWeb/ServiziDiUtilitaAutServlet?UC =22&SC=1&ST=2(警告:https!)

此服务器在UNIX和Java下作为应用程序服务器运行.

这是我用来连接到此服务器的代码:

CookieContainer myContainer = new CookieContainer();
HttpWebRequest request = (HttpWebRequest)WebRequest.Create("https://telematicoprova.agenziadogane.it/TelematicoServiziDiUtilitaWeb/ServiziDiUtilitaAutServlet?UC=22&SC=1&ST=2");
request.Credentials = new NetworkCredential(xxx,xxx);
request.CookieContainer = myContainer;
request.PreAuthenticate = true;
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
Run Code Online (Sandbox Code Playgroud)

(我从本网站上的另一篇文章中复制了此内容).但我从服务器收到这个答案:

底层连接已关闭:发送时发生意外错误.

我想我尝试了所有可能的任务,我对C#的知识必须提供给我,但没有...

c# authentication credentials webrequest

130
推荐指数
6
解决办法
28万
查看次数

微服务认证策略

我很难为微服务架构选择合适/安全的身份验证策略.我在这个主题上发现的唯一SO帖子就是这个:微服务架构中的单点登录

我的想法是在每个服务(例如,身份验证,消息传递,通知,配置文件等)中为每个用户提供一个唯一的引用(在逻辑上user_id与他相当)以及在id登录时获取当前用户的可能性.

从我的研究中,我发现有两种可能的策略:

1.共享架构

共享架构

在此策略中,身份验证应用程序是其中一项服务.但是每个服务必须能够进行转换session_id=> user_id所以它必须简单易行.这就是为什么我想到Redis,它会存储密钥:值session_id:user_id.

2.防火墙架构

防火墙架构

在此策略中,会话存储并不重要,因为它仅由身份验证应用程序处理.然后user_id可以转发到其他服务.我想到了Rails + Devise(+ Redis或mem-cached,或cookie存储等),但有很多可能性.唯一重要的是Service X永远不需要对用户进行身份验证.


这两种解决方案如何比较:

  • 安全
  • 稳健性
  • 可扩展性
  • 便于使用

或者你可能会建议我在这里没有提到的另一种解决方案?

我更喜欢解决方案#1,但没有找到太多的默认实现,这可以保证我正朝着正确的方向前进.

我希望我的问题不会被关闭.我真的不知道还能在哪里问它.

提前致谢

architecture authentication microservices

123
推荐指数
3
解决办法
5万
查看次数

REST API基于令牌的身份验证

我正在开发一个需要身份验证的REST API.因为身份验证本身是通过HTTP上的外部Web服务发生的,所以我推断我们会分配令牌以避免重复调用身份验证服务.这让我整整地回答了我的第一个问题:

这真的比仅要求客户端在每个请求上使用HTTP Basic Auth并缓存对身份验证服务端的调用更好吗?

Basic Auth解决方案的优点是在内容请求开始之前不需要完整的服务器往返.令牌可能在范围上更灵活(即仅授予对特定资源或操作的权限),但这似乎比我更简单的用例更适合OAuth上下文.

目前令牌是这样获得的:

curl -X POST localhost/token --data "api_key=81169d80...
                                     &verifier=2f5ae51a...
                                     &timestamp=1234567
                                     &user=foo
                                     &pass=bar"
Run Code Online (Sandbox Code Playgroud)

api_key,timestamp并且verifier被所有请求所需."验证者"由以下人员返回:

sha1(timestamp + api_key + shared_secret)
Run Code Online (Sandbox Code Playgroud)

我的意图是只允许来自已知方的呼叫,并防止呼叫被逐字重用.

这够好吗?漏杀?矫枉过正?

有了令牌,客户可以获得资源:

curl localhost/posts?api_key=81169d80...
                    &verifier=81169d80...
                    &token=9fUyas64...
                    &timestamp=1234567
Run Code Online (Sandbox Code Playgroud)

对于最简单的呼叫,这似乎有点可怕.考虑到最终shared_secret将嵌入(至少)一个iOS应用程序的意愿,我认为它可以被提取出来,这甚至提供了一种超出虚假安全感的东西吗?

authentication rest

121
推荐指数
2
解决办法
16万
查看次数

ASP.NET Web API身份验证

我希望在使用ASP.NET Web API时从客户端应用程序验证用户身份.我观看了网站上的所有视频,并阅读了此论坛帖子.

[Authorize]正确放置属性会返回401 Unauthorized状态.但是,我需要知道如何允许用户登录API.

我想从Android应用程序向API提供用户凭据,让用户登录,然后对所有后续API调用进行预先验证.

.net authentication android asp.net-web-api

121
推荐指数
2
解决办法
4万
查看次数

令牌认证与Cookie

令牌认证和使用cookie的身份验证之间有什么区别?

我正在尝试实施Ember Auth Rails演示,但我不明白使用令牌认证背后的原因,如Ember Auth常见问题解答中描述的"为什么是令牌认证?"

authentication cookies ember.js

117
推荐指数
7
解决办法
7万
查看次数

RESTful Web服务 - 如何验证来自其他服务的请求?

我正在设计一个RESTful Web服务,需要用户访问,还需要其他Web服务和应用程序访问.所有传入的请求都需要进行身份验证.所有通信都通过HTTPS进行.用户身份验证将基于身份验证令牌工作,通过将用户名和密码(通过SSL连接)POST 到服务提供的/ session资源获取.

对于Web服务客户端,客户端服务后面没有最终用户.请求由计划的任务,事件或一些其他计算机操作启动.连接服务列表事先已知(显然,我猜).我该如何验证来自其他(网络)服务的这些请求?我希望身份验证过程尽可能简单地实现这些服务,但不以安全为代价.对于这样的场景,标准和最佳实践是什么?

我能想到的(或者有人向我建议的)选项:

  1. 让客户服务使用"假的"用户名和密码,并以与用户相同的方式对其进行身份验证.我不喜欢这个选项 - 它感觉不对劲.

  2. 为客户端服务分配永久应用程序ID,也可能是应用程序密钥.据我所知,这与用户名+密码相同.使用此ID和密钥,我可以验证每个请求,或创建身份验证令牌以验证进一步的请求.无论哪种方式,我都不喜欢这个选项,因为任何能够获得应用程序ID和密钥的人都可以冒充客户端.

  3. 我可以在以前的选项中添加IP地址检查.这将使执行虚假请求变得更加困难.

  4. 客户证书.设置我自己的证书颁发机构,创建根证书,并为客户端服务创建客户端证书.但是,有几个问题浮现在脑海中:a)如何在没有证书的情况下允许用户进行身份验证,以及b)从客户端服务的角度来看,这种情况有多复杂?

  5. 还有别的 - 那里必须有其他解决方案吗?

我的服务将运行在Java上,但我故意遗漏了有关它将构建的具体框架的信息,因为我对基本原则更感兴趣,而不是对实现细节更感兴趣 - 我认为最好的解决方案是无论底层框架如何,都可以实现.但是,我对这个主题有点缺乏经验,所以对实际实现的具体提示和示例(例如有用的第三方库,文章等)也将非常感激.

authentication rest web-services restful-authentication client-certificates

115
推荐指数
3
解决办法
12万
查看次数