Tag: authentication

为什么AuthorizeAttributeredirect到login页面以进行身份​​validation和授权失败?

在ASP.NET MVC中,您可以使用AuthorizeAttribute标记控制器方法,如下所示: [Authorize(Roles = "CanDeleteTags")] public void Delete(string tagName) { // … } 这意味着,如果当前login的用户不在“CanDeleteTags”angular色中,控制器方法将永远不会被调用。 不幸的是,对于失败, AuthorizeAttribute返回HttpUnauthorizedResult ,它始终返回HTTP状态代码401.这会导致redirect到login页面。 如果用户没有login,这是非常有道理的。 但是,如果用户已经login,但不是所需的angular色,将它们发送回login页面会令人困惑。 AuthorizeAttribute似乎将authentication和授权混为一谈。 这似乎是在ASP.NET MVC的一个疏忽,或者我错过了什么? 我不得不做一个DemandRoleAttribute来区分这两者。 当用户未通过身份validation时,会返回HTTP 401,并将其发送到login页面。 当用户login但不是所需的angular色时,它将创build一个NotAuthorizedResult 。 目前这个redirect到一个错误页面。 当然,我不必这样做?

覆盖ASP.NET MVC中的授权属性

我有一个MVC控制器基类,我应用了授权属性,因为我想几乎所有的控制器(和他们的行动一起)被授权。 不过,我需要有一个控制器和另一个控制器的行动未经授权。 我想能够用[Authorize(false)]来装饰它们,但是这是不可用的。 有任何想法吗?

将iPhone应用程序的httpsencryption保护到网页

我想卖一个iPhone应用程序,将一个网页视图网页,说http://www.myapp.com/webview/我希望应用程序有效地存储身份validation所需的凭据在网站(即只有购买了应用程序的人才能查看此页面) 我还有什么可以在iPhone上获得安全,简单的webview,而不需要用户login(实质上他们购买应用程序将构成他们对页面的身份validation) 任何人都可以帮忙吗?

身份validationfilter和servletlogin

我有一个用于login的filter。 它在字段“用户名”和“密码”上执行文本检查。 当且仅当文本检查正确完成时,请求才会发送到Servlet。 后者执行必须与数据库交互的控制。 这条链是否正确?

PostgreSQL错误:致命:angular色“用户名”不存在

我正在build立我的PostgreSQL 9.1。 我无法用PostgreSQL做任何事情:不能createdb ,不能createuser ; 所有操作都会返回错误消息 Fatal: role h9uest does not exist h9uest是我的帐户名称,我sudo apt-get install在此帐户下sudo apt-get install PostgreSQL 9.1。 类似的错误仍然存​​在的root帐户。

用于密码散列的非随机盐

更新:我最近从这个问题中得知,在下面的整个讨论中,我(我确信其他人也是)也有点混乱:我一直称之为彩虹表,实际上称为哈希表。 彩虹表是更复杂的生物,实际上是Hellman哈希链的变种。 虽然我相信答案仍然是一样的(因为它不能归结为密码分析),但是有些讨论可能有些偏差。 这个问题:“ 什么是彩虹桌,他们是如何使用的? ” 通常情况下,我总是build议使用密码强的随机值作为盐,与散列函数(例如密码)一起使用,以防止彩虹表攻击。 但是,盐是随机的,它实际上是密码学上必要的吗? 任何独特的价值(唯一的每个用户,例如userId)在这方面就足够了? 它实际上会阻止使用单个彩虹表来破解系统中的所有(或大部分)密码。 但熵的缺乏是否真的削弱了哈希函数的密码强度呢? 请注意,我不是问为什么要使用盐,如何保护它(不需要),使用单个常量散列(不),或使用什么样的散列函数。 盐是否需要熵。 感谢所有答案到目前为止,但我想专注于我(一点)不太熟悉的领域。 密码分析的主要影响 – 我会很感激,如果有人有一些来自encryptionmathPoV的input。 另外,如果还有额外的vector没有被考虑,那也是很好的input(参见@Dave Sherohman指向多个系统)。 除此之外,如果您有任何理论,想法或最佳实践 – 请以证据,攻击情景或经validation据作为背景。 或者甚至是可以接受的权衡的有效考虑…我对这个问题上的最佳实践(资本B资本P)很熟悉,我想certificate这实际上提供了什么价值。 编辑:这里有一些非常好的答案,但我认为@Dave说,它归结为彩虹表的常见用户名称…也可能不太常用的名称。 但是,如果我的用户名是全球唯一的呢? 不一定是我的系统唯一的,但每个用户 – 例如电子邮件地址。 对于单个用户来说,build立RT是没有任何意义的(正如@Dave强调的那样,盐不是保密的),这仍然会阻止集群。 唯一的问题是,我可能会在不同的网站上有相同的电子邮件和密码 – 但盐无论如何不会阻止。 所以,它回到了密码分析 – 熵是必要的,还是不是? (我目前的想法是从密码分析的angular度来看没有必要,但是这是出于其他实际的原因)。

什么是基于令牌的authentication?

我想了解什么基于令牌的authentication手段。 我search了互联网,但找不到任何可以理解的东西。

JWT(JSON Web令牌)自动延长到期

我想为我们的新REST API实现基于JWT的authentication。 但是因为到期是在令牌中设定的,有可能自动延长吗? 我不希望用户在每个X分钟后都需要login,如果他们在那段时间内正在使用该应用程序。 这将是一个巨大的用户体验失败。 但延长期限会创build一个新的标记(旧的标记在到期之前仍然有效)。 每个请求后生成一个新的令牌听起来很愚蠢。 听起来像是一个安全问题,当多个令牌同时有效时。 当然,我可以使用黑名单使旧的使用无效,但我需要存储令牌。 JWT的好处之一就是没有存储空间。 我发现Auth0如何解决它。 他们不仅使用JWT令牌,而且使用刷新令牌: https : //docs.auth0.com/refresh-token 但是,为了实现这一点(没有Auth0),我需要存储刷新令牌并保持其到期。 那么真正的好处是什么? 为什么不只有一个令牌(不是JWT),并保持到服务器上到期? 还有其他的select吗? 是否使用JWT不适合这种情况?

如何处理数据库中用户的authentication/授权?

目前,我正在使用JSF 2.0,Tomcat 7和MongoDB开发Web项目。 我有一个很大的问题,就是如何处理数据库中的用户的会话pipe理和authentication/授权。 我想要的结构如下:只有login的用户可以创build事件,每个人都可以看到创build的事件。 create.xhtml – >仅适用于login用户。 events.xhtml – >公开为每个人。 我正在计划的基本结构是: 检查页面是否需要login用户(例如create.xhtml ) 如果是,请检查用户是否login 如果用户未login,请转到login.xhtml 如果成功login,请回到请求的页面 保持“用户已login”信息,除非用户单击注销button。 (在那里我猜@SessionScoped进场) 问题是: 这样做的较简单的方法是什么? 我应该在哪里使用@SessionScoped注释? 在Create.java或LoginManager.java ? 春季安全看起来有点复杂,我真的需要吗? 如果是的话,你能解释一下实现如何与JSF 2.0和Mongo DB一起工作吗?

Git推送需要用户名和密码

我从我的Github账号克隆了一个git仓库到我的电脑。 我想用我的个人电脑和笔记本电脑,但有一个Github帐户。 当我尝试使用我的电脑推送或从Github拉,它需要用户名和密码,但不是当使用笔记本电脑! 每次我与原始网站互动时,我都不想input用户名和密码。 我在这里错过了什么?