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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как привязать сайт к "железке" 
:(
    Опции темы
Alca
Дата 13.8.2008, 12:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3993
Регистрация: 14.6.2006

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



Как привязать сайт к "железке"? 
Я написал ActiveX компонет, который считывает ID номер смарткарты.
Необходимо, чтобы юзер не мог зайти на сайт без этой смарткарты.
Проверка ID номеры карты должна осуществляться на сервере (CGI-скрипт).
Подскажите как лучше организовать такой алгоритм.
Может как-то через Cookies? Как можно реализовать с помощью Cookies?

Это сообщение отредактировал(а) Alca - 15.8.2008, 12:15


--------------------
PM WWW ICQ Skype Jabber   Вверх
Ghirik
Дата 22.8.2008, 23:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Вот они и молчат... Умные... Потому, как подозревают, что вопрос глупый.

Цитата

Я написал ActiveX компонет, который считывает ID номер смарткарты


Замечательная фраза, умная.

Цитата

Может как-то через Cookies? 


Вот здесь лажа уже закончилась...


--------------------
Отдадим всё клиенту, пускай его машина мучается...

PM MAIL   Вверх
Alca
Дата 23.8.2008, 00:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3993
Регистрация: 14.6.2006

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



Умно..........
Цитата

Авторизация

Куки могут использоваться сервером для опознания ранее авторизовавшихся пользователей. Это происходит следующим образом:[20]
Пользователь вводит имя пользователя и пароль в текстовых полях страницы входа и отправляет их на сервер.
Сервер получает имя пользователя и пароль, проверяет их и, при их правильности, отправляет страницу успешного входа, прикрепив куку с неким идентификатором сессии. Эта кука может быть действительна только для текущей сессии браузера, но может быть настроена и на длительное хранение.
Каждый раз, когда пользователь запрашивает страницу с сервера, браузер автоматически отправляет куку с идентификатором сессии серверу. Сервер проверяет идентификатор по своей базе идентификаторов и, при наличии в базе такого идентификатора, «узнаёт» пользователя.
Это метод широко используется на многих сайтах, например на Yahoo!, Википедии, Facebook.


Это сообщение отредактировал(а) Alca - 3.9.2008, 11:01


--------------------
PM WWW ICQ Skype Jabber   Вверх
Alca
Дата 3.9.2008, 12:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3993
Регистрация: 14.6.2006

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



Цитата

Сервер проверяет идентификатор по своей базе идентификаторов и, 
при наличии в базе такого идентификатора, «узнаёт» пользователя.

У меня на сервере лежит CGI-скрипт.
Если я набираю урл в адресной строке,
как сервер сможет проверить этот идентификатор? Объясните пж.

Это сообщение отредактировал(а) Alca - 3.9.2008, 12:51


--------------------
PM WWW ICQ Skype Jabber   Вверх
ksnk
Дата 3.9.2008, 14:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


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

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



Постараюсь ответить серьезно, и буду пока считать, что вопрос не настолько глупый, как, может быть, выглядит smile

Предварительный ответ - никак. Если обходится схемой activeX->cookie->cgi, то никакой секретности не получится. Кука может быть перехвачена и подделана по дороге и на самом компютере.

Для простоты можно предложить повесить сайт за https, тогда перехватить значение куки по дороге может быть проблематично. Однако узнать значение куки, сохраненной на компьтере пользователя, imho, никаких проблем не составляет. 

Более правильный вариант - сервер предлагает какое-то случайное число-ключ, по которому шифруется значение ID карты. Вот оно уже и сохраняется в куках-сессии. Сервер, зная ключ расшифровывает значение ID и идентифицирует карту. Так как используется ActiveX, то несложно навернуть сколь угодно сложный алгоритм шифрования. Ключ сохраняется на время жизни сесии.

P.S. Alca, надеюсь ActiveX считывает номер смарткарты, которая вставлена в компютер пользователя? smile

P.P.S cgi может узнать значения кук с помощью пременных окружения.









--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
Alca
Дата 3.9.2008, 15:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3993
Регистрация: 14.6.2006

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



Цитата

P.S. Alca, надеюсь ActiveX считывает номер смарткарты, которая вставлена в компютер пользователя?

Да.
Цитата

P.P.S cgi может узнать значения кук с помощью пременных окружения.

Я так и делаю, получаю из переменных окружения, если запрос на сервер передается на CGI-скрипт.
Но если я ввожу ссылку (например, http://site/index2.htm) в адреснной строке - запрос не передается скрипту. 
Или я не прав?
Как я могу проверить таким образом значения кук на сервере???

Это сообщение отредактировал(а) Alca - 3.9.2008, 15:31


--------------------
PM WWW ICQ Skype Jabber   Вверх
ksnk
Дата 3.9.2008, 15:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


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

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



Угу... А чем отличаются случай, когда
Цитата

запрос на сервер передается на CGI-скрипт

и 
Цитата

ввожу ссылку в адреснной строке

?




--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
Alca
Дата 3.9.2008, 15:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3993
Регистрация: 14.6.2006

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



Я когда вбиваю ссылку в адреснной строке и жму "Enter" скрипт не выполняется.
Скрипт:
Код

int main(int argc, char *argv[]) {    
    MessageBox(0, "Скрипт выполнился", "", MB_OK);
    return 0;
}

Табличка не выскакивает!

Это сообщение отредактировал(а) Alca - 3.9.2008, 15:57


--------------------
PM WWW ICQ Skype Jabber   Вверх
ksnk
Дата 3.9.2008, 16:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


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

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



А запроc на сервер это что такое?  При каких условиях скрипт выполняется?


--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
Alca
Дата 3.9.2008, 16:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3993
Регистрация: 14.6.2006

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



Цитата

При каких условиях скрипт выполняется?

Передаю форму через POST-запрос
Код

<form name="frmCardId" action="http://site/cgi-bin/Test.cgi" enctype="multipart/form-data" method="POST">
        <input name="inpHidden"    type="hidden" value="some_binary_data"><br />
        <input name="inpHiddenUrl" type="hidden" value="some_url"><br />
</form>

Могу и GET-запросом передавать, если надо - все равно.
P.S. Web-cервер Apache (Denwer, последняя сборка)

Это сообщение отредактировал(а) Alca - 3.9.2008, 16:09


--------------------
PM WWW ICQ Skype Jabber   Вверх
ksnk
Дата 3.9.2008, 16:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


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

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



Alca, Тот текст на С, который приведен, выполниться, если вбить в адресную строку http://site/cgi-bin/Test/. Правда что будет делать админ сервера с всплывающим неожиданно сообщением я боюсь вслух произнести ;-)

Обычно, POST запросы отправляются с помощью ajax-технологии. Для этого используется какая-то Ajax javascript-библиотека. к примеру jQuery. Для jQuery страничка, которая отправит запрос при "вводе адреса в адресную строку" может выглядеть так
Код


<script type="text/javascript" scr="jquery.js"></script>
<script type="text/javascript">
$(function(){

$.post(
  "http://site/cgi-bin/Test/"
  ,{
     inpHidden:12345,
     inpHiddenUrl:someUrl
  }
  , function(){
      alert('Йо!')
  }
)

})
</script>

Йо!!!





--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
Alca
Дата 3.9.2008, 16:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3993
Регистрация: 14.6.2006

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



А на С реально сделать?


--------------------
PM WWW ICQ Skype Jabber   Вверх
ksnk
Дата 3.9.2008, 16:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


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

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



Alca, Мне почему-то начинает казаться, что статья будет очень полезна. 


--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
Alca
Дата 3.9.2008, 16:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3993
Регистрация: 14.6.2006

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



Цитата

Единственный способ отправить что-то скрипту - это кликнуть по ссылке или нажать на кнопку в форме.

Это я понял.
Цитата

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

Код

header("Location: http://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']); 
exit;

Это не совсем.
ksnk, объясни что значит:
Цитата

пусть ту же самую, но уже без данных формы


Это сообщение отредактировал(а) Alca - 3.9.2008, 16:48


--------------------
PM WWW ICQ Skype Jabber   Вверх
ksnk
Дата 3.9.2008, 17:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


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

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



Это уже следующая ступень понимания, пока о ней можно не думать.
Вот,
Цитата

А на С реально сделать?

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


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


 




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


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

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