Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 17.01.2015, 16:17   #1
NerfDoriftar
Пользователь
 
Регистрация: 17.01.2015
Сообщений: 15
Сообщение Нужна ваша помощь!

Всем доброго времени суток , вообщем у меня есть вопрос.
Допустим смотрите , имеется ссылка по которой нужно переходить.
Допустим - WEB1 := 'www.programmersforum.ru';
Есть люди которые подменивают мою заданную ссылку и ставят вместо моей свою.
И программа берёт данные уже не с моей ссылки , а с той которая была поставлена.

Сам вопрос: Можно ли как-то сделать/скрыть саму ссылку , простой проверкой не обойтись , очень нужна ваша помощь.
NerfDoriftar вне форума Ответить с цитированием
Старый 17.01.2015, 17:25   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Скрыть... Ну зашифровать можно. А при подстановке расшифровывать.
Только это тоже взламывается.
Расскажи поподробнее о ПО, может тогда более конкретно можно что-то будет сказать.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 17.01.2015, 17:31   #3
NerfDoriftar
Пользователь
 
Регистрация: 17.01.2015
Сообщений: 15
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Скрыть... Ну зашифровать можно. А при подстановке расшифровывать.
Только это тоже взламывается.
Расскажи поподробнее о ПО, может тогда более конкретно можно что-то будет сказать.
Код:
  
  b64r := '=gGd0BnOv8SatF2ZlNHahN2Yr5yYv12L';
  a1 := string_reverse(a1);
  WEB1 := decodebase64(a1);
  sedit1.Text := WEB1;
  sedit1.Text := string_reverse(sedit1.Text);
  WEB1 := sedit1.Text;
  Page := Http.get(WEB1 + '?a=' + Key);
При сниффе программы , всё равно видно ссылку.
NerfDoriftar вне форума Ответить с цитированием
Старый 17.01.2015, 17:31   #4
WinCoder
Заблокирован
 
Регистрация: 24.11.2014
Сообщений: 721
По умолчанию

Что-то я вообще ни чего не понял. Ссылки, программы, шифровка. Какая-то каша. На простом Русском можно озвучить задачу?
WinCoder вне форума Ответить с цитированием
Старый 17.01.2015, 17:34   #5
lomastr_
Форумчанин
 
Регистрация: 16.01.2015
Сообщений: 672
По умолчанию

Цитата:
При сниффе программы
от снифера ничего не поможет
lomastr_ вне форума Ответить с цитированием
Старый 17.01.2015, 17:34   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
При сниффе программы , всё равно видно ссылку.
Не, ну от этого не избавиться ))
Можно использовать UrlDecode() для перевода ссылки в URL вид, но все равно скрыть ее при переходе не удастся. Снифферы не обманешь. По крайней мере так.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 17.01.2015, 17:40   #7
NerfDoriftar
Пользователь
 
Регистрация: 17.01.2015
Сообщений: 15
По умолчанию

Хорошо , обьясню по подробнее.
Смотрите , у меня есть сервер , с проверкой данных.
Расскажу всё по этапно:
1.В программе генерируется ключ зашифрованный в Base64.
2.Далее я делаю реверс ссылки : http://programmersforum.ru/ на \ur.murofsremmargorp\\tth
3.Кодирую в Base64.
4.В новую переменную всё это декодирую и вставляю в запрос.
5.Получается = Http.get('http://programmersforum.ru/a?='+Key);
6.Имеется база данных с ключами , при правильном ключе , выдаются правильные данные , а с не верным - не правильные.
7.Человек сниффает данные которые получаются при валидном ключе.
8.Делает свой сервер.
9.И заменяет мою ссылку проверки , на свою.

Вопрос в том , как сделать так чтобы если заходит на другую ссылку , программа закрывалась либо ещё что-то.
Если делать так :
Код:
if WEB1='http://programmersforum.ru' then
begin
end
else
begin
Application.Terminate;
end;
- То это можно обойти за 1-2 минуты , через Ollydbg.

Последний раз редактировалось NerfDoriftar; 17.01.2015 в 17:42.
NerfDoriftar вне форума Ответить с цитированием
Старый 17.01.2015, 18:22   #8
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
7.Человек сниффает данные которые получаются при валидном ключе.
8.Делает свой сервер.
9.И заменяет мою ссылку проверки , на свою.
Все правильно. И это неизбежно. При таком подходе, всмысле.
Хочешь защиты - выноси логику работы программы на сервер полностью.
Программа ничего не должна расчитывать и хранить, она должна обращаться (тут можно прикрутить SSL и сертификаты для доверенного соединения кстати) на сервер, задавать ему параметры. На сервере должны производиться вычисления и возвращаться программе. Тогда взлоумышленнику будет почти невозможно подделать (сэмулировать) работу сервера. Кстати данные передаваемые сессией можно защифровать паролем пользователя, это еще сильнее усилит защиту.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 17.01.2015, 18:30   #9
NerfDoriftar
Пользователь
 
Регистрация: 17.01.2015
Сообщений: 15
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Все правильно. И это неизбежно. При таком подходе, всмысле.
Хочешь защиты - выноси логику работы программы на сервер полностью.
Программа ничего не должна расчитывать и хранить, она должна обращаться (тут можно прикрутить SSL и сертификаты для доверенного соединения кстати) на сервер, задавать ему параметры. На сервере должны производиться вычисления и возвращаться программе. Тогда взлоумышленнику будет почти невозможно подделать (сэмулировать) работу сервера. Кстати данные передаваемые сессией можно защифровать паролем пользователя, это еще сильнее усилит защиту.

Дело в том , что защита работает таким образом.
1. Заходим на сервер.
2. Парсим (parse_str) = допустим какое либо значение давайте к примеру "1" - добавляем всё в переменную "Parsed" - естественно типа String.
3. При заходе на сервер , если ключ имеется в базе данных парсятся правильные данные а то есть : 1.
4. Если ключа нет в базе данных , тогда парсятся не правильные данные а то есть : 0.
5. Зачем это нужно?
6. Задаётся параметр: Memo1.Enabled := strtoint(Parsed);
Что скажете?
NerfDoriftar вне форума Ответить с цитированием
Старый 17.01.2015, 18:38   #10
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Что скажете?
Взламывается на раз-два.
Однажды правильные данные получить и можешь забыть о своей защите.
Еще раз говорю - логику работы программы целиком и полностью выноси на сервер. Плюс сертификаты, устанавливающее доверенное безопасное соединение.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Нужна ваша помощь:) Gigomod Операционные системы общие вопросы 3 14.02.2014 16:11
Нужна ваша помощь Шаманочка Паскаль, Turbo Pascal, PascalABC.NET 2 29.04.2009 20:58