![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
|
|||||
|
Вот и научились создавать приложения. А защитить его не научились.
Перечислю несколько методов защиты и ниже напишу почему этого не достаточно. Нужна помощь! 1 например получаем число переданное от прила на сервер в пхп Не правильно - $num=$_POST["num"]; Правильно - $num=(int)$_POST["num"]; например получаем текст типа имени пользователя или другого размером до 10 символов Не правильно - $name=$_POST["name"]; Правильно - $name=substr($_POST["name"],0,10); // и тогда злоумышленники не смогут запихать в переменную целые строчки кода типа AND DELETE FROM table 2 передаем серверу значение viewer_id, auth_key в скрипте должны присудствовать заранее переменные api_id, secret И проверяем if ($auth_key=md5($viewer_id."_".$api_id."_".$secret)) то пропускаем , иначе блокируем запрос 3 Есть третий вариант защиты , он пока для меня самый действенный и 100% защищающий (если не учитывать возможность декомпиляции приложения) Действенный то он и действенный но его считаю как "экспериментальны" так как требует лишней таблицы в mysql для хранения ключей Я на сервере создал табличку с полями ид пользователья, время запроса, рандомное число А в приложении создал класс который хеширует(свой алгоритм) секретное_слово+","+random()*1000000 И с каждым запросом отправляет на сервер... Сервер дехеширует и делает split. То есть разделяет на 2 части получая : секретное слово и рандом. Ид, Времья и рандом записывается в табличку А теперь фокус: Если секрет правильный то И если в табличке не было такого рандома от такого этого user_id за последний ЧАС, то пропускаем. Иначе: die("код не уникален"); Фишка 3го способа в том что для каждого пользователя и для каждого запроса к серверу от этого пользователя будут уникальные ключи и 2 раза по одному и тому же ключу не пропустим. В отличаи от auth_key, где пользователь изначально может узнать этот код в исходном коде страницы и от лица себя может делать сколько угодно запросов. Да, он не знает authkey других пользователей и поэтому не может повлеять на числа других.. Но может например поднять свой рейтинг в приложении, увидев один раз какой auth_key и viewer_id отправляется Поэтому вопрос к тем кто уже одолел этот вопрс: КАК ДОСТИЧЬ ТАКОГО УРОВНЯ ЗАЩИТЫ КАК В п.3 без всяких записей в базу и лишьших запросов mysql...?
__________________
------------------------------- FLASH FLASH FLASH FLASH FLASH |
![]() |
Часовой пояс GMT +4, время: 22:21. |
|
|
« Предыдущая тема | Следующая тема » |
|
|