Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

HTML+CSS+JavaScript

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Можно такое реализовать на JavaScript? Или тогда на чем?
 
 автор: Рома   (08.07.2009 в 14:48)   письмо автору
 
 

есть форма

<form action="обработчик " method="post">
<input type="hidden" nane="hidden_name" value="случайная_строка"> // случайная строка
// генерируется на сервере и сохраняется, что потом сравнить с пришедшей
Введите имя:
<input type="text" nane="user_name">
Введите пароль:
<input type="password" name="user_password">
<input type="submit" value="Нажать">

После нажатия на кнопку хочу чтоб не вводимые данные отправлялись, а одна строчка, сгенерированная до посыла на сервер, вот такого вида: (пишу на php, чтоб понятно было, что я хочу)

$name=value(user_name); // то, что ввели в имя
$pass=value(user_password); // то, что ввели в пароль
$md5name=md5($name);
$md5pass=md5($pass);
$string=md5("случайная_строка".$md5name.$md5pass);
// полученную строку $string можно смело отправлять серверу на сравнение со сгенерированной у меня.

Что мне для этого нужно? Буду рад любому мнению на этот счет.

  Ответить  
 
 автор: sim5   (08.07.2009 в 14:53)   письмо автору
 
   для: Рома   (08.07.2009 в 14:48)
 

Можно, а вопрос - зачем? Это у вас скрытая каптча?

  Ответить  
 
 автор: PAT   (08.07.2009 в 15:01)   письмо автору
 
   для: Рома   (08.07.2009 в 14:48)
 

Это вам нужна функция на Javascript'e - аналог PHP-преобразованию md5.
Смотрите, например, код этой функции здесь - я сам не проверял её, но почитайте там комменты.

  Ответить  
 
 автор: sl1p   (08.07.2009 в 15:09)   письмо автору
 
   для: PAT   (08.07.2009 в 15:01)
 

не легче просто юзнуть аякс?

  Ответить  
 
 автор: sim5   (08.07.2009 в 15:09)   письмо автору
 
   для: PAT   (08.07.2009 в 15:01)
 

Не понятно. Человек генерирует на сервере случайное число. Случайное он хочет сгенерировать и на клиенте. И что он будет сравнивать?

  Ответить  
 
 автор: Рома   (08.07.2009 в 15:17)   письмо автору
 
   для: sim5   (08.07.2009 в 15:09)
 

Нет, конечно же используется число сгенерированное на сервере.

  Ответить  
 
 автор: sim5   (08.07.2009 в 15:19)   письмо автору
 
   для: Рома   (08.07.2009 в 15:17)
 

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

  Ответить  
 
 автор: Рома   (08.07.2009 в 15:22)   письмо автору
 
   для: sim5   (08.07.2009 в 15:19)
 

Конечно, оно же не зря пришло скрытым полем.

  Ответить  
 
 автор: sim5   (08.07.2009 в 15:25)   письмо автору
 
   для: Рома   (08.07.2009 в 15:22)
 

Ну а к чему тогда шум подняли? ) То что сгенерировали на сервере, то и отправляете клиенту, и при получении формы от клиента, сравниваете.

  Ответить  
 
 автор: Рома   (08.07.2009 в 15:29)   письмо автору
 
   для: sim5   (08.07.2009 в 15:25)
 

Вот тут почитал, и решил узнать поподробнее. Нет так уж это просто.

  Ответить  
 
 автор: sim5   (08.07.2009 в 15:35)   письмо автору
 
   для: Рома   (08.07.2009 в 15:29)
 

Вот ваш вопрос:
а) После нажатия на кнопку хочу чтоб не вводимые данные отправлялись, а одна строчка, сгенерированная до посыла на сервер....

То бишь надо полагать вы ее генерируете на клиенте.

б) полученную строку $string можно смело отправлять серверу на сравнение со сгенерированной у меня.

И каким образом две независимо сгенерированные велечины будут гарантированно равными? Что вы пытаетесь сделать? Релиз к приведенной ссылке?

  Ответить  
 
 автор: Рома   (08.07.2009 в 15:42)   письмо автору
 
   для: sim5   (08.07.2009 в 15:35)
 

>То бишь надо полагать вы ее генерируете на клиенте.

Да

>Что вы пытаетесь сделать? Релиз к приведенной ссылке?

Да

  Ответить  
 
 автор: sim5   (08.07.2009 в 15:46)   письмо автору
 
   для: Рома   (08.07.2009 в 15:42)
 

Значит занимаетесь глупостями. Что я еще могу сказать. Величины случайно сгенерированные на сервере и на клиенте, могут быть равны также чисто случайно, а значит плакал ваш клиент - вместо защиты (которую надо полагать вы строите) вы создаете автомат по производству мата в ваш адрес.

  Ответить  
 
 автор: Рома   (08.07.2009 в 15:56)   письмо автору
 
   для: sim5   (08.07.2009 в 15:46)
 

Да с чего вы взяли что они разные?
Перед тем как послать форму я на сервере генерю число, сохраняю его в сессию(а еще лучше в базу, вместе с IP), и отправляю скрытым полем в форму. Дальнейшие операции происходить будут уже с тем числом, которое пришло клиенту вместе с формой.

p.s.Больше волнует, что я еще не разу не брался учить JavaScript, так что придется дольше заниматься реализацией, чем я мог предположить.

  Ответить  
 
 автор: sim5   (08.07.2009 в 16:00)   письмо автору
 
   для: Рома   (08.07.2009 в 15:56)
 

А при чем тут JS? Почему вопрос "коряво" ставите?

PS. С того взял, что вы сами так описали процесс, а тем более подтведили его на мой вопрос.

  Ответить  
 
 автор: Рома   (08.07.2009 в 16:05)   письмо автору
 
   для: sim5   (08.07.2009 в 16:00)
 

А чем на клиенте слрипты исполнять, чтобы "голые" данные не пошли к серверу? Я кроме php ни с чем не знаком.

  Ответить  
 
 автор: sim5   (08.07.2009 в 16:11)   письмо автору
 
   для: Рома   (08.07.2009 в 16:05)
 

У меня сейчас извилины выравняются....) При чем тут "голые данные" и то, о чем вы спрашивали выше? Проверка полей формы на заполняемость никак не связана с каким либо скрытым полем в фоме, и уж тем более проверкой случайных велечин. Да и в любом случае данные все равно проверять надо на сервере, включая и проверку на пустоту.

  Ответить  
 
 автор: Рома   (08.07.2009 в 16:24)   письмо автору
 
   для: sim5   (08.07.2009 в 16:11)
 

вот здесь описаны преимущества и недостатки этой схемы. Кстати половина недостатков чушь.

  Ответить  
 
 автор: sim5   (08.07.2009 в 16:34)   письмо автору
 
   для: Рома   (08.07.2009 в 16:24)
 

Там рассказывается совсем об ином, а не о том, что вы написали в вопросе своем, или правильней сказать, там описана суть, у вас же .... Там есть ссылка на скрипт автора, скачивайте и пользуйтесь.

  Ответить  
 
 автор: Рома   (08.07.2009 в 15:13)   письмо автору
 
   для: PAT   (08.07.2009 в 15:01)
 

Ого, я думал для этого есть специальные функции. Чето мне перехотелось:)

  Ответить  
 
 автор: sim5   (08.07.2009 в 15:17)   письмо автору
 
   для: Рома   (08.07.2009 в 15:13)
 

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

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования