| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > JavaScript: Общие вопросы > Безопасно передать данные из javascript в PHP |
| Автор: quiz 21.4.2007, 05:51 |
| Здравствуйте. Озадачился на днях таким вопросом - реально ли передать результат выполнения javascript'а серверу так, чтобы его при этом нельзя было подменить (хотя бы самыми простыми методами). То есть, например, имеется яваскрипт, который считает сколько раз пользователь успел нажать на кнопку в течение 3х секунд, а в конце "теста" скрипт передает серверу результат в виде result.php?num=123 Можно ли защититься от прямой передачи результата юзером вручную, типа result.php?num=9999? |
| Автор: Sardar 21.4.2007, 12:05 |
| Если через SSL (https) отправлять, то добрую половину чайников это точно остановит. Можно только усложнить процесс передачи данных, но защитится от "подмены" нельзя. |
| Автор: Alx 21.4.2007, 15:44 |
| а если использовать POST-метод и HTTP_REFERER? |
| Автор: quiz 22.4.2007, 19:54 |
| Извиняюсь, наверное надо было постить тему в раздел "для новичков". Покажите примеры, пожалуйста, как отправить по SSL и проверить факт подмены в php скрипте, |
| Автор: Sardar 22.4.2007, 22:44 |
| На до что бы хостер поддерживал SSL. Всё то же самое, только в урлах https (http через SSL тунель). Если денег не жалко, то можно положить свой сертификат у какой нибудь trusted фирмы, например http://www.verisign.com/. Тогда бродилка не будет пользователя просит подтвердить доверие к сертификату. Собственно задача такой фирмы сказать что ты это точно ты. Если интересно как всё устроено, то читать о асимметричном кодировании. |
| Автор: Alx 23.4.2007, 17:38 |
| я читал) в Wikipedia статью SSL. ниче не понял точнее - что такое сертификат и как им пользоваться.. судя по твоему посту он необязателен? и все что нужно для SSL соединения - писать https:// вместо http://, если это включено на хостинге? |
| Автор: Alexandr87 23.4.2007, 20:10 |
Сертификат - это файл, который удостоверяет, что определенный открытый ключ принадлежит определенному человеку или организации. Не вдаваясь в подробности, это просто открытый ключ и данные о владельце, подписанные другим - "доверенным" лицом. Есть два режима, в одном сертификат имеет только сервер - т.е. клиент обращающийся к серверу - будет уверен, что сервер именно тот, который нужен. При этом, клиент для сервера остается не авторизованным. Во втором режиме, клиент также имеет сертификат - и в этом случае сервер также уверен с кем он "общается". Чаще всего на интернет страницах используется первый вариант, который позволяет любому пользователю сети передавать какие-либо конфиденциальные данные по организованному защищенному каналу. Соответственно, и в данном случае насчет сертификатов заморачиваться не надо. Надо всего лишь прикрутить SSL к вашему web-серверу (при это надо будет сгенерировать ключики, создать сертификаты, по этой теме есть довольно много манов, проблем быть не должно). Об этом вам задумываться не стоит, за вас это сделает сервер, для вашего php-скрипта, впрочем, как и для java-скрипта - работа через SSL будет "прозрачна". |
| Автор: Sardar 23.4.2007, 20:26 | ||||
Бродилка будет требовать подтверждения сертификата с сервера если за него никто trusted не отпишется, а это стоит денег. Но оно не страшно, средний пользователь без страха жмёт "да" на любые окна
С клиентской стороны да. Бродилка просто будет SSL тунель открывать перед запросом. Для серверных скриптов вообще ничего на прямую не заметно. Также бродилка в таком режиме будет отсылать куки с флагом secure, которые без защищённого канала не отсылаются. Удобно для разного рода ключей сессий. |