Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Безопасно передать данные из javascript в PHP 
:(
    Опции темы
quiz
Дата 21.4.2007, 05:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 94
Регистрация: 15.8.2005

Репутация: нет
Всего: нет



Здравствуйте.
Озадачился на днях таким вопросом - реально ли передать результат выполнения javascript'а серверу так, чтобы его при этом нельзя было подменить (хотя бы самыми простыми методами).
То есть, например, имеется яваскрипт, который считает сколько раз пользователь успел нажать на кнопку в течение 3х секунд, а в конце "теста" скрипт передает серверу результат в виде result.php?num=123

Можно ли защититься от прямой передачи результата юзером вручную, типа result.php?num=9999?


Это сообщение отредактировал(а) quiz - 21.4.2007, 05:51
PM MAIL   Вверх
Sardar
Дата 21.4.2007, 12:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

Репутация: 78
Всего: 317



Если через SSL (https) отправлять, то добрую половину чайников это точно остановит. Можно только усложнить процесс передачи данных, но защитится от "подмены" нельзя.


--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
Alx
Дата 21.4.2007, 15:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ajaxy
****


Профиль
Группа: Комодератор
Сообщений: 2903
Регистрация: 26.11.2003
Где: Cutopia

Репутация: 10
Всего: 78



а если использовать POST-метод и HTTP_REFERER?


--------------------
PM MAIL WWW ICQ   Вверх
Alexandr87
Дата 21.4.2007, 18:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


дыкий псых
***


Профиль
Группа: Завсегдатай
Сообщений: 1459
Регистрация: 27.11.2004
Где: Алматы, Казахстан

Репутация: нет
Всего: 39



Цитата(Sardar @  21.4.2007,  15:05 Найти цитируемый пост)
Если через SSL (https) отправлять, то добрую половину чайников это точно остановит. Можно только усложнить процесс передачи данных, но защитится от "подмены" нельзя. 

Не все так плохо, на самом деле при передачи данных по протоколу SSL обеспечивается их имитозащита (Выработка MAC`ов). Так, что факт подмены|искажения данных будет установлен.

PS. Кроме того, часто используются связки JavaScript`ов с JavaApplet`ами, при этом апплеты выполняют функции по шифрованию, выработке ЭЦП.
PM Jabber   Вверх
quiz
Дата 22.4.2007, 19:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 94
Регистрация: 15.8.2005

Репутация: нет
Всего: нет



Извиняюсь, наверное надо было постить тему в раздел "для новичков".
Покажите примеры, пожалуйста, как отправить по SSL и проверить факт подмены в php скрипте, smile 
PM MAIL   Вверх
Sardar
Дата 22.4.2007, 22:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

Репутация: 78
Всего: 317



На до что бы хостер поддерживал SSL. Всё то же самое, только в урлах https (http через SSL тунель). Если денег не жалко, то можно положить свой сертификат у какой нибудь trusted фирмы, например verisign. Тогда бродилка не будет пользователя просит подтвердить доверие к сертификату. Собственно задача такой фирмы сказать что ты это точно ты.

Если интересно как всё устроено, то читать о асимметричном кодировании.


--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
Alx
Дата 23.4.2007, 17:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ajaxy
****


Профиль
Группа: Комодератор
Сообщений: 2903
Регистрация: 26.11.2003
Где: Cutopia

Репутация: 10
Всего: 78



я читал) в Wikipedia статью SSL. ниче не понял smile хотя вроде там все так разжевано..
точнее - что такое сертификат и как им пользоваться..

судя по твоему посту он необязателен?
и все что нужно для SSL соединения - писать https:// вместо http://, если это включено на хостинге?


--------------------
PM MAIL WWW ICQ   Вверх
Alexandr87
Дата 23.4.2007, 20:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


дыкий псых
***


Профиль
Группа: Завсегдатай
Сообщений: 1459
Регистрация: 27.11.2004
Где: Алматы, Казахстан

Репутация: нет
Всего: 39



Цитата(Alx @  23.4.2007,  20:38 Найти цитируемый пост)
что такое сертификат

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



Цитата(Alx @  23.4.2007,  20:38 Найти цитируемый пост)
судя по твоему посту он необязателен?

Есть два режима, в одном сертификат имеет только сервер - т.е. клиент обращающийся к серверу - будет уверен, что сервер именно тот, который нужен. При этом, клиент для сервера остается не авторизованным.
Во втором режиме, клиент также имеет сертификат - и в этом случае сервер также уверен с кем он "общается". 

Чаще всего на интернет страницах используется первый вариант, который позволяет любому пользователю сети передавать какие-либо конфиденциальные данные по организованному защищенному каналу. Соответственно, и в данном случае насчет сертификатов заморачиваться не надо. Надо всего лишь прикрутить SSL  к вашему web-серверу (при это надо будет сгенерировать ключики, создать сертификаты, по этой теме есть довольно много манов, проблем быть не должно).

Цитата(quiz @  22.4.2007,  22:54 Найти цитируемый пост)
проверить факт подмены в php скрипте

Об этом вам задумываться не стоит, за вас это сделает сервер, для вашего php-скрипта, впрочем, как и для java-скрипта - работа через SSL будет "прозрачна".

Это сообщение отредактировал(а) Alexandr87 - 23.4.2007, 20:14
PM Jabber   Вверх
Sardar
Дата 23.4.2007, 20:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

Репутация: 78
Всего: 317



Цитата(Alexandr87 @  23.4.2007,  19:10 Найти цитируемый пост)
Соответственно, и в данном случае насчет сертификатов заморачиваться не надо.

Бродилка будет требовать подтверждения сертификата с сервера если за него никто trusted не отпишется, а это стоит денег. Но оно не страшно, средний пользователь без страха жмёт "да" на любые окна smile

Цитата(Alx @  23.4.2007,  16:38 Найти цитируемый пост)
и все что нужно для SSL соединения - писать https:// вместо http://, если это включено на хостинге? 

С клиентской стороны да. Бродилка просто будет SSL тунель открывать перед запросом. Для серверных скриптов вообще ничего на прямую не заметно. Также бродилка в таком режиме будет отсылать куки с флагом secure, которые без защищённого канала не отсылаются. Удобно для разного рода ключей сессий.


--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию.
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0485 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.