标签: anonymous-users

Rails中的匿名用户 - 安全考虑因素?

我正在考虑在Rails中实现某种形式的匿名用户系统.我需要让人们做事(创建记录,查看他们创建的内容等),而无需实际创建帐户.一旦他们创建了一个帐户,一切都会持续存在,而不会因清除cookie或其他内容而丢失它.

现在,我认为这很简单.在User模型中有一个is_anonymous字段,并使用类似的东西来访问当前登录的用户:

def find_user
  session[:user_id] ||= create_new_anonymous_user.id
end
Run Code Online (Sandbox Code Playgroud)

假设会话持续了一段合理的时间,并且会话cookie没有过期,那么应该保持一切顺利运行.

然而,有一部分我确信我错过了与安全相关的东西.以前有人做过这样的事吗?我错过了一些非常明显的东西吗?

谢谢!

ruby security ruby-on-rails anonymous-users

7
推荐指数
1
解决办法
1277
查看次数

在django中缓存匿名用户

我将如何为匿名用户缓存页面,但是为Django 1.6中的授权用户呈现这些页面?曾经有一个CACHE_MIDDLEWARE_ANONYMOUS_ONLY标志听起来很完美,但已被删除.

我问,因为每个页面都有一个菜单栏,显示登录用户的名字和他/她的个人资料的链接.

这样做的正确方法是什么?必须是一个常见的问题,但我没有找到正确的方式来浏览Django文档.

django caching django-templates django-cache anonymous-users

7
推荐指数
1
解决办法
654
查看次数

如何使用Flask跟踪匿名用户

我的应用程序实现了一个购物车,匿名用户可以在其中填充产品.用户登录仅在付款前需要.如何实施?

主要的挑战是烧瓶必须跟踪用户(即使是匿名的)和他们的订单.我目前的方法是利用AnonymousUserMixin分配给的对象current_user.假设current_user在整个会话期间不会改变.但是,我注意到,例如,每次浏览器页面刷新时都会AnonymousUserMixin分配一个新对象current_user.请注意,如果用户通过身份验证,则不会发生这种情况.

关于如何绕过这个的任何建议?

python anonymous-users flask flask-login

6
推荐指数
1
解决办法
1437
查看次数

Firebase - 将匿名用户转换为登录用户?

背景:在我的iOS游戏中,我想允许用户在不登录的情况下进行游戏(在Firebase中匿名进行身份验证以保存用户数据),还可以让他们选择使用Facebook登录以解锁其他游戏玩法.

我正在尝试修改此帖子,用匿名登录替换Twitter登录:

"users": {
    "$userid": {
      // Require the user to be logged in, and make sure their current credentials
      // match at least one of the credentials listed below, unless we're creating
      // a new account from scratch.
      ".write": "auth != null && 
        (data.val() === null || 
        (auth.provider === 'facebook' && auth.uid === data.child('facebook/id').val() || 
        (auth.provider === 'anonymous' && auth.uid === data.child('anonymous/id').val()))"
    }
  }
Run Code Online (Sandbox Code Playgroud)

我很困惑转换将如何与这些规则一起使用.特别是说:

  1. 用户匿名进行身份验证,并且能够创建存储在其下的匿名uid的规范用户记录users/"$userid"/anonymous/id.这是允许的,因为用户已通过身份验证并且第一次设置了用户对象(auth != null && data.val() === null).

  2. users/"$userid"/ …

authentication facebook anonymous-users firebase

6
推荐指数
0
解决办法
1307
查看次数

如何在spring security 3中为匿名用户从数据库加载角色?

我正在使用Spring Security 3.0.2,我找不到从数据库加载匿名用户角色的方法(我有动态角色,可以将角色分配给每个人).

我尝试使用自定义anonymousAuthenticationProvider,但从不调用此提供程序.这是我的配置:

<http auto-config="false">
    <logout invalidate-session="true" logout-success-url="/page/welcome" />
    <remember-me />
    <anonymous username="_GUEST_" granted-authority="ROLE_GUEST" key="anonymousKey" />
    <form-login login-page="/page/login" authentication-failure-url="/page/login?fail=1" default-target-url="/page/welcome" />
</http>

<authentication-manager alias="authenticationManager">
    <authentication-provider ref="anonymousAuthenticationProvider"></authentication-provider>
    <authentication-provider user-service-ref="accountDetails">
        <password-encoder ref="passwordEncoder">
            <salt-source user-property="xxxx" />
        </password-encoder>
    </authentication-provider>
</authentication-manager>

<beans:bean id="accountDetails" class="com.mysite.AccountDetailsImpl" />

<beans:bean id="passwordEncoder" class="org.springframework.security.authentication.encoding.ShaPasswordEncoder">
    <beans:constructor-arg value="512" />
</beans:bean>

<beans:bean id="anonymousAuthenticationProvider" class="com.my.site.security.CustomAnonymousAuthenticationProvider">
    <beans:property name="key" value="anonymousKey" />
</beans:bean>
Run Code Online (Sandbox Code Playgroud)

永远不会调用我的anonymousAuthenticationProvider,因此我无法从数据库加载自定义权限.当我登录时,我的服务accountDetails被调用,我可以从数据库为用户加载角色,我想为匿名用户做同样的事情.

我该怎么做 ?谢谢

security anonymous spring-security anonymous-users

5
推荐指数
1
解决办法
3999
查看次数

Django:如何在不使用SESSION_SAVE_EVERY_REQUEST的情况下为AnonymousUser设置sessionid cookie

我试图跟踪AnonymousUsers以确定他们何时第一次来到网站,然后他们注册到网站.

为此,我创建了一个具有相关功能的中间件,但这最初假设每个AnonymousUsers已经有一个与之关联的会话(即sessionid cookie将在第一个响应中设置,相关会话已经在django_session中创建).注意:会话应用和中间件存在

看起来情况并非如此,在查看会话中间件时,当AnonymousUser首次出现在网站上时,会话永远不会被修改(用户会这样做,因为'_auth_user_id'和'_auth_user_backend'已设置),所以永远不会创建:

SessionMiddleware.process_response

def process_response(self, request, response):
    """
    If request.session was modified, or if the configuration is to save the
    session every time, save the changes and set a session cookie.
    """
    try:
        accessed = request.session.accessed
        modified = request.session.modified
    except AttributeError:
        pass
    else:
        if accessed:
            patch_vary_headers(response, ('Cookie',))
        if modified or settings.SESSION_SAVE_EVERY_REQUEST:
            if request.session.get_expire_at_browser_close():
                max_age = None
                expires = None
            else:
                max_age = request.session.get_expiry_age()
                expires_time = time.time() + max_age
                expires = cookie_date(expires_time)
            # Save the session data and …
Run Code Online (Sandbox Code Playgroud)

django session anonymous-users session-cookies

5
推荐指数
1
解决办法
5645
查看次数

匿名访问SharePoint站点根目录

我已在SharePoint网站上为"列表和库"配置了匿名访问.然后,我根据我的要求启用对单个列表/库的匿名访问.

这很好用,但我无法访问我希望被重定向到欢迎页面的根网站URL:

  1. 访问http:// servername失败,拒绝访问
  2. 访问http://servername/Pages/Default.aspx成功

如果我将Web权限设置为"整个网站",我可以访问根URL,但我不想这样做.

我正在为我的网站配置网站定义,并在功能激活期间通过对象模型修改网站,例如

web.AnonymousPermMask64 = SPBasePermissions.Open;
web.AnonymousState = SPWeb.WebAnonymousState.Enabled;
web.Update();
Run Code Online (Sandbox Code Playgroud)

...这是我已经成功使用的代码.

有谁知道如何允许匿名访问http:// servername

sharepoint moss sharepoint-2007 anonymous-users

4
推荐指数
1
解决办法
4098
查看次数

在django中存储昵称的匿名用户的优雅方式?

我的django应用程序中有一个简单的Post模型:

class Post(models.Model):
    category = models.CharField(max_length=10, choices=choices)
    message = models.CharField(max_length=500)
    user = models.ForeignKey(User, editable=False)
Run Code Online (Sandbox Code Playgroud)

我想实现让匿名用户创建带昵称的帖子的功能.不幸的是,django不允许您将AnonymousUser的实例保存为Post类的外键.

我想在db中添加一个"虚拟"用户记录,代表匿名用户(id = 0,或者如果可能的话,还有一些负数),用于没有用户的所有帖子.如果存在,则可以使用可以为空的名称字段来表示匿名用户的昵称.

这个解决方案对我来说似乎有些苛刻.有没有更清洁更有效的解决方案?

database django anonymous-users

4
推荐指数
1
解决办法
1744
查看次数

使用 Firebase 匿名身份验证作为应用程序中的唯一身份验证方法

我有以下基于 Firebase 后端的移动应用场景:

  • 两个或多个移动应用程序实例通过中央服务(可信)相互通信。这些应用程序通过交换共享密钥进行配对,例如通过扫描二维码或输入配对码。
  • 用户是匿名的,即不需要(或可能)注册。本质上,它是特定设备上的特定应用程序与同上的对应应用程序(相对于用户到用户)配对。
  • 交换的信息是敏感的,但没有内在价值:必须可以相信信息来自给定设备,并且必须可以相信信息已到达预期设备而不是冒充设备。但应用程序实例的信息丢失并不是关键问题,例如,如果应用程序被删除或设备被破坏(需要重新配对的烦恼,但不是关键问题)。

Firebase 匿名身份验证似乎非常适合这种情况 - 但文档暗示它只能用作临时解决方案,直到用户创建实际帐户。使用匿名身份验证作为解决方案的唯一身份验证方法有什么缺点吗?我看到的替代方案是使用基于自定义令牌的登录或电子邮件/密码身份验证的某种黑客攻击。

anonymous-users firebase google-cloud-platform firebase-authentication

3
推荐指数
1
解决办法
673
查看次数