Отправка формы Javascript без открытого текста - PullRequest
0 голосов
/ 27 апреля 2011

У меня есть имя пользователя и пароль, хранящиеся в БД с 2-х сторонним шифрованием. Я хотел бы использовать их для входа на сайт с JS-формой, подобной этой:

        var form = document.createElement("form");
        form.setAttribute("method", "post");
        form.setAttribute("action", "http://www.someloginscript.com/");
        var f = document.createElement("input");
        f.setAttribute("type", "text");
        f.setAttribute("name", "username");
        f.setAttribute("value", myUser);
        var f1 = document.createElement("input");
        f1.setAttribute("type", "text");
        f1.setAttribute("name", "password");
        f1.setAttribute("value", myPass);
        form.appendChild(field);
        form.appendChild(f1);
        document.body.appendChild(form);
        form.submit();

Я хотел бы отправить форму с паролем, однако для этого мне нужно сначала расшифровать ее. Если я расшифрую его, то пароль будет виден через функции «Проверка элемента». Я, очевидно, не хочу этого.

Я наткнулся на сайт www.clipperz.com, который делает именно то, что я хочу, но я не уверен, как. Нужно ли реализовывать их библиотеку шифрования с открытым исходным кодом из http://sourceforge.net/projects/clipperz/? Или это все дым и зеркала, которые делают его более безопасным?

спасибо!

edit: Теперь я знаю, что не существует безопасного способа сделать это. Является ли использование curl более безопасным способом отправки этой формы? Таким образом, я могу сохранить всю обработку паролей на стороне сервера?

Ответы [ 2 ]

2 голосов
/ 27 апреля 2011

Вы не указали это точно, но похоже, что вы пытаетесь использовать Javascript на одном сайте для автоматизации процесса входа на другой сайт?Это верно?Также звучит так, будто вы хотите использовать общий логин для всех пользователей, что необходимо для того, чтобы пользователи не могли его видеть.

Я не думаю, что это будет работать так, как вы пытаетесь это сделать.,Проблема в том, что пользователь в браузере имеет полный доступ к коду Javascript и всем данным, которые он использует, с помощью таких инструментов, как Firebug.Используя эти инструменты, он может даже изменить код после загрузки страницы.

Короче говоря, невозможно позволить Javascript обрабатывать данные, не давая пользователю возможности их увидеть.

Я бы предположил, что лучшим подходом может быть что-то вроде следующего:

  • Сайт 1 отправляет сообщение на Сайт 2, сообщая, что хочет войти в систему пользователя.Он сообщает IP-адрес пользователя, данные для входа в систему, которые он хочет использовать, и другие соответствующие данные.

  • Сайт 2 отвечает на сайт 1 токен-кодом, который сайт 1 затем отправляет пользователюbrowser.

  • Затем в браузере пользователя код Javascript отправляет токен на сайт 2 вместо имени для входа и пароля.

  • сайт 2распознает его как токен, который он только что дал сайту 1, и что он пришел с IP-адреса, о котором ему сообщили, и регистрирует пользователя, как если бы он получил обычный набор данных для входа в систему.

Этот процесс, очевидно, требует от вас написания кода как на сайте 1, так и на сайте 2, поэтому вы должны иметь полный доступ к ним обоим.Если Сайт 2 является сторонней системой, возможно, вам придется придумать что-то еще.

1 голос
/ 27 апреля 2011

Какую бы информацию вы ни отправляли на сторонний сайт, в какой-то момент ее нужно будет сделать доступной для браузера пользователя - и в этот момент они смогут проверить ее и получить информацию.

В качестве альтернативы, они могут просматривать HTTP-запросы, сделанные с их компьютера.

Дело в том, что информация на компьютере пользователя не может быть скрыта от пользователя, если она должна быть в дешифрованном виде.состояние на их машине в любой момент.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...