безопасный iPhone WebApp с jqTouch и HTML5 - PullRequest
1 голос
/ 29 ноября 2011

У меня есть небольшой WebApp (всего один html-файл с 200 строками кода), работающий на бесплатном провайдере веб-хостинга. Я хочу иметь ограниченный доступ к WebApp, чтобы не все могли видеть страницу. Мне также нужен только один пользователь с паролем для входа в систему.

Можно ли легко интегрировать логин пользователя только в Javascript, JqTouch и html?

Ответы [ 3 ]

2 голосов
/ 29 ноября 2011

С помощью только Javascript вы можете, но не должны этого делать: все могут это увидеть.Пожалуйста, рассмотрите возможность использования языка на стороне сервера (такого как PHP, ASP или любой другой).

2 голосов
/ 29 ноября 2011

Вы можете зашифровать значимый источник, и при первоначальном запуске просто иметь текстовое поле, которое требует от пользователя ввода ключа:

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>
1 голос
/ 29 ноября 2011

Если это всего лишь одна страница, то нет.Даже если вы спрятали что-то за логином (что выполнимо), любой мог бы понять, что происходит, просто взглянув на html-код, поскольку javascript, jqtouch и html все на стороне клиента.

Вам потребуетсяреализовать что-то еще на стороне сервера для аутентификации и последующей доставки контента.

Если вам нужно только показать логин и вам не нужна безопасность, вы можете реализовать логин и тому подобное для демонстрационных целей.

...