首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在基于Cordova的移动应用程序和web服务器之间通信期间,确保隐私的最佳方式是什么?

在基于Cordova的移动应用程序和web服务器之间通信期间,确保隐私的最佳方式是什么?
EN

Stack Overflow用户
提问于 2014-09-09 15:59:44
回答 1查看 374关注 0票数 1

我已经建立了一个基于科尔多瓦的移动应用程序,适用于iOS和安卓,我需要在应用程序和服务器之间进行安全通信。在javascript中,对服务器的请求是这样的:

代码语言:javascript
复制
    request.open("GET", 'http://url/service?firstElement='+elem+'&secondElement='+elem2, false);

我曾尝试使用pidCrypt库在本地使用生成公钥和私钥,2048bits的密钥生成时间太长,所以我使用了512bits。服务器无法解密该邮件。

我在找一个更好的解决方案。

EN

回答 1

Stack Overflow用户

发布于 2014-09-09 18:29:56

尝试使用Send Ajax Request,如下所示。我假设您使用php编写动态代码(服务器端)。

下面是您的cordova,phonegap目录中的HTML文件示例。

代码语言:javascript
复制
    <form method = "post" action = "#!">
        <div class="col-md-4">
            <span class="help-block">Name</span><input type="text" name="username" class="form-control" />
        </div>
        <br>
        <div class="col-md-4">
            <span class="help-block">Password</span><input type="text" name="password" class="form-control" />
        </div>
        <input type = "submit" value = "Save" class = "btn btn-success right" onClick="UpdateRecord();"/>
    </form>

    <script>
    function UpdateRecord()
      {
          var name = $("[name='username']").val();
          var host = $("[name='password']").val();
          jQuery.ajax({
           type: "POST",
           url: "php/login.php",
           /* Or */
           /*url: "https://www.yoursite.com/page",*/
           data: "username="+ username+"& password="+ password,
           dataType: "html",
           cache: false,
           success: function(response){
                if(response == 'true') {
                    $.session.set("myVar", username);
                    window.location.href='profile.html';
                }
                else {
                    $("#errorMessage").html("Invalid Entry, Please Try Again");
                }   
            }
         });
     }
    </script>

和处理查询的PHP文件。

请不要说,代码没有经过测试,它可能会根据您的需要而变化。您可以在这里执行任何加密方法和使用任何函数。

代码语言:javascript
复制
    <?php
        include 'config.php';
        $username = mysql_real_escape_string($_POST['username']);
        $password = mysql_real_escape_string($_POST['password']);

        if(!empty($username) && !empty($password))
        {
                //$result = mysql_query("SELECT * FROM ".$db.".users WHERE username='$username' and  password ='$password'");
                $result=mysql_query("select * from ".$db.".users WHERE email = '$username' ");
                while($data = mysql_fetch_row($result))
                {
                    $original_password = $data[3];
                    $salt = $data[4];
                    $hashedPass = sha1($salt.$password);
                    $fullusername = $data[16]." ".$data[17]; // Used Only for create full name session
                    if ($original_password == $hashedPass)
                    {
                        $_SESSION['username'] = $fullusername;
                        $_SESSION['useremail'] = $username;
                        $_SESSION['UserID'] = $data[0];
                        echo 'true';
                    }
                }

            }
    ?>

编辑

代码语言:javascript
复制
request.open("GET", 'http://url/service?firstElement='+elem+'&secondElement='+elem2, false);

避免在发送敏感数据时使用GET方法。

编辑,有用的链接

Local storage protection in phonegap application

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25739446

复制
相关文章

相似问题

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