跨站点请求伪造(CSRF)通常通过以下方法之一进行阻止: 检查引用 – RESTful但不可靠 将令牌插入表单并将令牌存储在服务器会话中 – 不是真正的RESTful 神秘的一次性URIs – 与令牌相同的原因不是RESTful 手动为这个请求发送密码(不是与HTTPauthentication一起使用的caching密码) – RESTful但不方便 我的想法是使用用户秘密,一个神秘但静态的表单id和JavaScript来生成令牌。 <form method="POST" action="/someresource" id="7099879082361234103"> <input type="hidden" name="token" value="generateToken(…)"> … </form> GET /usersecret/john_doe由来自经过validation的用户的JavaScript获取。 回应: OK 89070135420357234586534346这个秘密在概念上是静态的,但可以每天/每小时更改…以提高安全性。 这是唯一的保密的事情。 阅读隐藏的(但静态为所有用户!)formsID与JavaScript,与用户密码一起处理: generateToken(7099879082361234103, 89070135420357234586534346) 将表单连同生成的令牌一起发送到服务器。 由于服务器知道用户密码和表单ID,因此可以在发送之前运行与客户端相同的generateToken函数,并比较两个结果。 只有当两个值相等时,动作才会被授权。 这种方法有什么问题,尽pipe它没有JavaScript不起作用。 附录: 无状态的CSRF保护
我是Python新手,使用Python Flask和生成REST API服务。 我想检查由angularjs发送的授权头。 但是我无法find在烧瓶中获得HTTP头的方法。 任何获得HTTP头授权的帮助表示赞赏。
当他向API发送请求时,我需要对客户端进行身份validation。 客户端有一个API令牌,我正在考虑使用标准Authorization标头将令牌发送到服务器。 通常这个头被用于Basic和Digestauthentication。 但我不知道是否允许自定义此标头的值并使用自定义authenticationscheme,例如: Authorization: Token 1af538baa9045a84c0e889f672baf83ff24 你会推荐这个吗? 还是有更好的方法来发送令牌?
我在理解OAUTH-v2如何工作方面遇到一些麻烦。 OAuth版本2规范显示: 访问受保护的资源 客户端通过访问来访问受保护的资源 令牌给资源服务器。 资源服务器必须validation 访问令牌并确保它没有过期,并且其范围覆盖 请求的资源。 资源服务器使用的方法 validation访问令牌(以及任何错误响应) 超出了本规范的范围 ,但通常涉及资源服务器和授权之间的交互或协调 服务器 。 资源服务器和授权服务器之间的这种交互在实践中如何工作? 资源服务器如何确定它所接收的访问令牌是有效的? 资源服务器如何从令牌中提取允许的范围,以查看是否应将访问权限授予特定的资源? 访问令牌中是否编码了范围,还是资源服务器首先必须联系授权服务器? 资源服务器和授权服务器之间的信任如何build立? 访问令牌属性以及用于访问受保护资源的方法超出了本规范的范围,并由配套规范定义。 有人可以给出令牌属性的例子吗?
我正在从WebApi的许多资源(书籍和答案)阅读授权。 假设我想添加自定义属性,只允许某些用户访问: 情况1 我已经看到这种重写 OnAuthorization方法,如果出现错误,它会设置响应 public class AllowOnlyCertainUsers : AuthorizeAttribute { public override void OnAuthorization(HttpActionContext actionContext) { if ( /*check if user OK or not*/) { actionContext.Response = new HttpResponseMessage(HttpStatusCode.Unauthorized); } } } 案例#2 但是我也看到了这个类似的例子,它也覆盖OnAuthorization但调用base : public override void OnAuthorization(HttpActionContext actionContext) { base.OnAuthorization(actionContext); // If not authorized at all, don't bother if (actionContext.Response == null) […]
我需要在我的MVC 4应用程序中根据用户权限级别(没有angular色,只有权限级别分配给用户的CRUD操作级别)来控制对视图的访问。 示例如下AuthorizeUser将是我的自定义属性ABD我需要像下面一样使用它。 [AuthorizeUser(AccessLevels="Read Invoice, Update Invoice")] public ActionResult UpdateInvoice(int invoiceId) { // some code… return View(); } [AuthorizeUser(AccessLevels="Create Invoice")] public ActionResult CreateNewInvoice() { // some code… return View(); } [AuthorizeUser(AccessLevels="Delete Invoice")] public ActionResult DeleteInvoice(int invoiceId) { // some code… return View(); } 这可能吗? 怎么样? 提前致谢… Chatura
我想知道是否可以将自定义数据放在HTTP授权标头中。 我们正在devise一个RESTful API,我们可能需要一种方法来指定一个自定义的授权方法。 作为一个例子,我们称之为FIRE-TOKENauthentication。 这样的事情是有效的,并允许根据规范: Authorization: FIRE-TOKEN 0PN5J17HBGZHT7JJ3X82:frJIUN8DYpKDtOLCwo//yllqDzg= 第二个string的第一部分(在':'之前)是API密钥,第二部分是查询string的散列。
我有一个与Android 4.3的Nexus 4,我试图将设备连接到Windows 7 64位的计算机。 我安装了最新的驱动程序和最新的adb版本。 我想我已经尝试了几乎所有的东西,我仍然得到以下消息: C:\Program Files (x86)\Android\sdk\platform-tools>adb devices List of devices attached 007667324ccb229b unauthorized 什么可能是这个错误的原因?
我正在写一个JACC提供者。 一路上,这意味着实施PolicyConfiguration 。 PolicyConfiguration负责接受来自应用程序服务器的configuration信息,例如哪些权限归属于哪个angular色。 这样一来,以后的Policy就可以在交付关于当前用户的信息以及他正在尝试做什么的情况下做出授权决定。 但是,它不是PolicyConfiguration (恶意)合同中维护angular色及其权限与委派给这些angular色的Principals之间的映射的一部分。 通常情况下,应用服务器总是保存这个映射。 例如,在Glassfish上,通过在Java EE模块中提供诸如sun-web.xml和sun-ejb-jar.xml类的东西来影响此映射。 (这些特定于供应商的文件负责说明,例如, superusers是将被分配admins的应用程序angular色的组。 我想重用这些文件提供的function,我想这样做尽可能广泛的应用程序服务器的数组。 这是完全任意的,IBM正在处理这个问题,这似乎证实了我怀疑我想要做的事实际上是不可能的 。 (对于我的情况来说,更多的弹药是这个特定的Java EE合同不值得它所印刷的文章。) 我的问题:我如何从PolicyConfiguration GlassFish和JBoss中的principal-to-role-mapping信息? 如果有一个标准的方法来做到这一点,我不知道,我都耳朵。
Web应用程序有什么区别? 总之,请。 我看到很多缩写“auth”。 它代表的是身份validation还是身份validation ? 或两者?