首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在不允许访问整个auth数据库的情况下显示zumero用户信息?

如何在不允许访问整个auth数据库的情况下显示zumero用户信息?
EN

Stack Overflow用户
提问于 2013-05-08 03:34:23
回答 1查看 326关注 0票数 1

我正在用sqlitezumero构建一个移动应用程序。

我注册了托管服务器,并阅读了有关auth数据库和ACL的zumero文档。据我所知,有一个身份验证数据库,里面有用户和加密的密码,默认情况下,服务器被配置为不允许将该数据库同步到本地设备。

我想在我的应用程序中显示一个用户列表。似乎我可以更改ACL,以便可以将auth数据库下拉到设备上,但这似乎是一个坏主意。在不影响安全性的情况下,将用户数据下载到设备上的推荐方法是什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-05-08 04:46:10

首先,让我们指出,如果您愿意,您可以启用auth db的同步。

Zumero内部身份验证数据库中的密码使用bcrypt进行加密。如果你把auth db下载到移动设备上,你确实会带来安全风险,因为现在有人可以破解东西,获得加密的密码,并试图解密它们。但额外的风险并不是很大。密码仍然是加密的。

要拉取内部auth dbfile,需要做两件事:

  1. 在创建时(使用zumero_internal_auth_create),您必须指定函数的最后两个参数,以描述允许添加zumero_internal_auth_create条目的用户。例如,要允许zumero_users_admin的成员更改auth db上的ACL条目,请执行以下操作:

选择zumero_internal_auth_create( server_url,dbfile,credentials_scheme,credentials_username,credentials_password,first_username,first_password,allow_add_scheme,allow_add_who,);

  • 使用zumero_internal_auth_set_acl_entry增加拉取能力:

SELECT zumero_internal_auth_set_acl_entry( server_url,dbfile,credentials_scheme,credentials_user,credentials_password,scheme,who,tbl,zumero_named_constant('acl_op_pull'),zumero_named_constant('acl_result_allow'),);

请注意,您可以限制允许拉取的用户。还要注意的是,授予拉取身份验证数据库的能力并不会授予以其他方式修改它的任何能力。

好了,回到问题上:

另一种选择是有两个内部身份验证数据库,一个有密码,另一个只有别名。现在,您可以在具有别名的应用程序上启用同步,从而允许您的移动应用程序拥有用户列表,而无需访问密码。

破解一个bcrypt字符串是很难的,但如果你没有这个字符串,那就更难了。:-)

要以这种方式设置,您需要使用zumero_internal_auth_create()创建两个身份验证数据库。而且每次添加用户时,都需要添加两次。一次是在密码db中使用zumero_internal_auth_add_user(),一次是在别名db中使用zumero_internal_auth_add_alias()。

代码语言:javascript
复制
    SELECT zumero_internal_auth_create(
    server_url,
    'passwords',
    credentials_scheme,
    credentials_username,
    credentials_password,
    first_username,
    first_password,
    zumero_internal_auth_scheme('zumero_users_admin'),
    zumero_named_constant('acl_who_any_authenticated_user'),
    zumero_internal_auth_scheme('zumero_users_admin'),
    zumero_named_constant('acl_who_any_authenticated_user')
    );

    SELECT zumero_internal_auth_create(
    server_url,
    'aliases',
    credentials_scheme,
    credentials_username,
    credentials_password,
    first_username,
    first_password,
    zumero_internal_auth_scheme('zumero_users_admin'),
    zumero_named_constant('acl_who_any_authenticated_user'),
    zumero_internal_auth_scheme('zumero_users_admin'),
    zumero_named_constant('acl_who_any_authenticated_user')
    );

    SELECT zumero_internal_auth_set_acl_entry(
    server_url,
    'aliases',
    credentials_scheme,
    credentials_user,
    credentials_password,
    scheme,
    who,
    tbl,
    zumero_named_constant('acl_op_pull'),
    zumero_named_constant('acl_result_allow'),
    );

    SELECT zumero_internal_auth_add_user(
    server_url,
    'passwords',
    credentials_scheme,
    credentials_username,
    credentials_password,
    'gandalf',
    'thegrey'
    );

    SELECT zumero_internal_auth_add_alias(
    server_url,
    'aliases',
    credentials_scheme,
    credentials_username,
    credentials_password,
    'gandalf',
    'passwords',
    'gandalf'
    );
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16427102

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档