【问题标题】:secure iPhone WebApp with jqTouch and HTML5使用 jqTouch 和 HTML5 保护 iPhone WebApp
【发布时间】:2012-01-08 07:03:34
【问题描述】:

我有一个小 WebApp(只有一个包含 200 行代码的 html 文件)在免费的虚拟主机提供商上运行。我希望限制对 WebApp 的访问,因此不是每个人都可以看到该页面。我也只需要一个有密码的用户即可登录。

是否可以仅在 Javascript、JqTouch 和 html 中轻松集成用户登录?

【问题讨论】:

    标签: jquery iphone html jqtouch web-applications


    【解决方案1】:

    您可以加密有意义的来源,并且在初始启动时只有一个要求用户输入密钥的文本字段:

    http://crypto.stanford.edu/sjcl/

    http://bitwiseshiftleft.github.com/sjcl/demo/

    这里有一个示例页面可以帮助您入门:http://robotwoods.com/dev/so_crypt.html

    这是代码(我知道链接是可疑的):

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <meta name="viewport" content="width=device-width, user-scalable=no">
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <meta name="apple-mobile-web-app-capable" content="yes" />
    <head>
    <title>Encrypted Site</title>
    <style>
    body {font-family:"Trebuchet MS", Arial, Helvetica, sans-serif;}
    #wrap {position:relative; width:500px; height:550px; margin-left:auto; margin-right:auto;}
    #pwd {position:absolute; width:120px; top:100px; padding-left:170px; height:50px; margin-left:auto; margin-right:auto;}
    
    </style>
    <script type="text/javascript" src="http://crypto.stanford.edu/sjcl/sjcl.js"></script>
    <script>
    //--------------HERE IS THE ENCRYPTED CONTENT
    kt="{iv:\"oMnhqxC9DhBgaZjHvm354g\",salt:\"gxZ08m1I5DY\",ct:\"TIKmKXfzkWaxBJ0nbyMVYo9/tvmlIeuIE4Aknt7j7H4t+bk\"}";
    </script>
    </head>
    <body><div id="wrap"><div id="main">
        <div id="pwd">S.O. Username:<input id='pass' type='text'/><button onclick="login_test()">Login</button></div>
    </div></div></body>
    
    <script>
    function login_test(){
        try{document.getElementById('main').innerHTML=sjcl.decrypt(document.getElementById('pass').value,kt);}
        catch(err){document.getElementById('main').innerHTML+='<div id=\"error\" style=\"color:#F00\"><br/>This is not for you</div>';} 
    }
    </script>
    </html>
    

    【讨论】:

      【解决方案2】:

      你可以只使用 Javascript,但你不应该这样做:每个人都可以看到它。 请考虑使用服务器端语言(例如 PHP、ASP 或其他)。

      【讨论】:

        【解决方案3】:

        如果只有一页,那么没有。即使您在登录后隐藏了一些东西(这是可行的),任何人都可以通过查看 html 代码来弄清楚发生了什么,因为 javascript、jqtouch 和 html 都是客户端。

        您需要在服务器端实现其他东西来进行身份验证,然后交付内容。

        如果您只关心显示登录并且并不真正需要安全性,那么您可以实现登录等用于演示目的。

        【讨论】:

          最近更新 更多