这个用户管理系统安全吗?

时间:2018-02-22 12:43:25

标签: cordova curl couchdb phonegap pouchdb

我目前正在使用PouchDB / CouchDB为Cordova / PhoneGap应用程序执行用户管理系统。

这种方法是否可以接受并且相当安全?

1)注册通过对我网站上的API的Ajax调用发生。 (USERNAME和PASSWORD是用户输入)

$.post('https://example.com/api', {
  user: "USERNAME",
  password: "PASSWORD"
}, function(data){
  // Something like "Success" or "Username is taken"
});

2)如果USERNAME和PASSWORD可以接受(例如,尚未使用用户名),API将使用cURL连接到我的Cloudant CouchDB实例(具有管理员权限)和

a)将用户添加到_users数据库

b)为用户创建数据库

c)将用户_reader和_writer权限授予他自己的数据库

(以下是2b的代码示例)

<?php
curl_setopt($ch, CURLOPT_URL, 'https://ACCOUNT.cloudant.com/USERNAME/');
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'PUT');
curl_setopt($ch, CURLOPT_POSTFIELDS, $USERINFO); // object containing USERNAME and PASSWORD
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
    'Content-type: application/json',
    'Accept: */*'
));

curl_setopt($ch, CURLOPT_USERPWD, 'ADMINUSERNAME:ADMINPASSWORD'); // Admin credentials for my Cloudant instance

$response = curl_exec($ch);
?>

3)最后,如果客户端从Ajax调用收到“Success”,它将通过PouchDB authentication plugin登录到CouchDB:

var remoteDB = new PouchDB('https://ACCOUNT.cloudant.com/USERNAME');

remoteDB.login('USERNAME', 'PASSWORD').then(function (response) {
  // "Success"
});

为简单起见,我省略了诸如santizing和错误处理等内容。这个问题只是关于我正在使用的结构和方法:)

提前致谢:)

0 个答案:

没有答案