2013-05-29 6 views
0

Прежде чем задать вопрос, я признаю, что этот метод неудобно обескуражен и не защищен. Я знаю, что для достижения этого - через SSL.Надежно отправьте форму, используя JavaScript/PHP

Тем не менее, я разрабатываю приложения HTML5 (и кажется, что внедрение SSL-подхода потребует много времени), и я хотел бы знать, как лучше всего использовать POST-контент формы.

т.е. я следующий вид

<form id="someform" name="someform" method="POST" action="some/server/url"> 

Путь эта форма представляется (в настоящее время) использует Ajax $ ("# someform) .serialize() и так далее ..

С помощью этого реализация я столкнулся с (по крайней мере) этих 2 насущными проблемами:.

  1. пользователя может использовать инструменты (т.е. TamperData | Firefox, аддоны) для изменения размещено содержания (Перехват-и-модификация)
  2. Пользователь может фальсифицировать данные, отправив «fake'submission (Ковка)

мне интересно, если есть каким-то образом я мог бы по крайней мере (запутать POST-е изд) значение.

Я столкнулся с этим отличным инструментом http://www.jcryption.org/, но не знаю, как его реализовать, чтобы решить проблему, с которой я столкнулся.

ps: again Я знаю, что использование сценария на стороне клиента менее безопасно по сравнению с обработкой всего выполнения с сервера.

рамки + язык я использую: CodeIgniter + PHP + JavaScript (JQuery)

первая поправка:

Я уверен, что есть по крайней мере, работа вокруг с помощью этой теории

Во-первых, меня не слишком беспокоит конфиденциальность моих данных, то есть значение POST-ed не даст никакой ценной информации, даже если кто-то еще знает, что это такое.

Что касается меня, то это целостность и достоверность POST-значения. Это просто означает, что никто другой не должен нарушать информацию после ее передачи (после нажатия кнопки отправки), и никто не может подделывать или создавать поддельное значение (подделка сервера).

Эта теория приводит к цифровой подписи, где (опять же в теории) я должен каким-то образом подписать POST-значение с использованием PUB-ключа сервера, затем передать значение POST-ed с помощью PUB-ключа сервера и, наконец, отправить оба оригинальное значение POST-ed вместе с хешированным значением.

Перед отправкой POST-значного значения клиент ДОЛЖЕН запрашивать ключ PUB сервера, поэтому клиент может хэш-значение POST-ed. Возможно, сервер сохранил информацию PUB-ключа вместе с информацией SESSION.

Затем серверу придется (снова) хеш (на этот раз с PRI-ключом сервера) исходное POST-значение (отправленное клиентом) и сравнить два хешированных значения. Если это значение одно и то же, это просто означает, что оно является подлинным.

Теперь часть, которую я еще не понял, это КАК .....

Есть ли какие-либо инструменты/рамки/плагины/учебник/пример о том, как это сделать? так как это было бы слишком для меня (не говоря уже о ограниченном количестве времени, которое у меня есть) для разработки всей инфраструктуры с открытым ключом с нуля.

ответ

3

Сделайте еще один шаг и поймите, что пользователь может также шифровать поддельные данные ,
И SSL не поможет в таком подделке.

Это аксиома веб-разработки: все можно подделать на стороне клиента. Период.

Итак, вместо шифрования ничего, просто проверьте свои данные на стороне сервера, как и на любом другом сайте.

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

+0

@Your_Common_Sense, даже с сессией "заверенный" пользователь может фальсифицировать данные. Кроме того, как я должен проверить свой ввод? – Jeremy

+1

Нет, они не могут вмешиваться в данные сеанса. В этом и заключается суть механизма, поскольку данные сеанса хранятся на стороне сервера. Проверьте свой вход обычным способом. –

+0

Если я должен быть жестоко честен с вами, я все равно не уверен, могу ли я следовать вашему предложению. Как я могу проверить ввод пользователя (смотря с технической точки зрения)? – Jeremy

-1

Пользователя

фальсифицирована Форма Представление

Вы получите полную информацию here

+0

Thx, почему вы занижены? – Jeremy

+0

Не знаю почему. Пожалуйста, осмелитесь прокомментировать, если вы осмелитесь понизить – jyoti

Смежные вопросы