|
2 / 2 / 0
Регистрация: 23.06.2018
Сообщений: 7
|
||||||
Дыры в коде23.06.2018, 12:45. Показов 2500. Ответов 10
Метки нет (Все метки)
Здравствуйте, недавно начал изучать php и решил для (игрового) сайта на движке yii написать простенький код для активации промокодов, не подскажите где здесь четкие дыры и как их можно закрыть или написать код более грамотно. Заранее спасибо за помощь.
P.S. Весь это код я написал в файле где отображается вся информация главной страницы, то есть личный кабинет, надписи на странице и т.п.
0
|
||||||
| 23.06.2018, 12:45 | |
|
Ответы с готовыми решениями:
10
Дыры на сайте |
|
40 / 40 / 23
Регистрация: 26.01.2012
Сообщений: 317
|
||||||||||||||||
| 23.06.2018, 15:58 | ||||||||||||||||
Сообщение было отмечено Avam как решение
Решение
Первое...подключения к бд должно быть в отдельном файле (кстати во фреймворке именно так и должно быть)...если в этом скрипте у тебя будет какой-то глюк, трейс ошибки (при неверной настройке фреймворка) может выкинуть у тебя кусок кода с данными подключения к бд...и тогда все!
Добавлено через 2 минуты Второе...переменная $qwe должна проходить контроль - фильтрацию, экранирование...короче нельзя пихать данные из запроса сразу в базу, иначе однажды словишь инъекцию и тогда тоже все! Добавлено через 1 минуту Третье...всякие манипуляции с деньгами лучше осуществлять с помощью транзакций (почитай мануалы про MySql), чтобы можно было откатить все изменения обратно! Добавлено через 7 минут Четвертое...зачем брать все промокоды из таблицы потом сверять с тем что пришел? Логичнее ведь так
Шестое...инъекция в твоем случае скорее всего не пройдет, но желательно все делать по канонам, а лучше всего для работы с бд использовать PDO (и подготовленные выражения)...во фреймворке это тоже все есть! Добавлено через 2 минуты Седьмое...ну это просто подарок для хакера)))
Добавлено через 19 минут Восьмое...
Девятое...раз уж ты логируешь успешные...логируй и неуспешные попытки активации...в таком случае можно отловить ситуацию когда человек пытается подобрать код! Добавлено через 1 минуту Заключение...в твоем коде нет дыр...это одна сплошная дыра))) Не переживай, все приходит с опытом!!!
1
|
||||||||||||||||
|
2 / 2 / 0
Регистрация: 23.06.2018
Сообщений: 7
|
|
| 23.06.2018, 16:20 [ТС] | |
|
Спасибо огромное, что все так подробно расписали, буду работать. Очень помогли, еще раз спасибо)
0
|
|
|
1569 / 1448 / 303
Регистрация: 01.10.2011
Сообщений: 2,636
|
||||
| 23.06.2018, 16:31 | ||||
|
Avam, Тебе лучше сразу продумать все. Например, промокод можно будет 1 раз использовать или несколько. Промокод будет давать всегда одну сумму бонуса или разный промокод с другой суммой. На начальном этапе это легче сделать, чем когда уже у тебя будут пользователи
Добавлено через 2 минуты
1
|
||||
|
2 / 2 / 0
Регистрация: 23.06.2018
Сообщений: 7
|
|
| 23.06.2018, 16:31 [ТС] | |
|
Да да, логику я допишу, просто хотелось узнать все уязвимости и для начала их закрыть)
Значит получается, что из косяков тут в общем плане только кривое подключение к бд?
0
|
|
|
1569 / 1448 / 303
Регистрация: 01.10.2011
Сообщений: 2,636
|
|||||||
| 23.06.2018, 16:38 | |||||||
|
Avam, Если у тебя одна страница и больше нигде нет подключений к базе, то можно оставить. Но, если уже несколько, то лучше вынести в отдельный класс, как например у тебя тут
Тут еще нужно добавить выход из цикла, если промокод найден. А то, у тебя все действия с ним сделаны, но ты продолжишь перебирать все промокоды дальше
0
|
|||||||
|
40 / 40 / 23
Регистрация: 26.01.2012
Сообщений: 317
|
||||||
| 23.06.2018, 16:38 | ||||||
0
|
||||||
|
2 / 2 / 0
Регистрация: 23.06.2018
Сообщений: 7
|
|
| 23.06.2018, 16:46 [ТС] | |
|
edward_freedom, понял спасибо, как раз это уже реализовано в config.php там настраивается подключение к базе данных.
Добавлено через 43 секунды monahoff, эта строчка чисто для теста, чтобы видеть как всё работает, забыл ее стереть перед тем как сюда код залить)
1
|
|
|
40 / 40 / 23
Регистрация: 26.01.2012
Сообщений: 317
|
|
| 23.06.2018, 16:49 | |
|
edward_freedom срет во всех ветках...по делу пиши, а не указывай как мне излагать мысль
0
|
|
|
1569 / 1448 / 303
Регистрация: 01.10.2011
Сообщений: 2,636
|
|
| 23.06.2018, 16:54 | |
|
monahoff,
Не по теме: процитируй сообщение, где я тебе что то указал
0
|
|
|
2 / 2 / 0
Регистрация: 23.06.2018
Сообщений: 7
|
||||||
| 23.06.2018, 16:55 [ТС] | ||||||
|
Так же создал маленькую элементарную программку на C# для генерации промокода и записи его в базу. Тут только основа, нет исключений и тд, но вдруг кому будет интересно сможет доделать под свои цели.
1
|
||||||
| 23.06.2018, 16:55 | |
|
Помогаю со студенческими работами здесь
11
Дыры на сайте Как залатать дыры? Дыры в вап чате Найти на сайте дыры Дыры в веб-сайте Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога
Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
|
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование
. \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json>
Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом.
# Check if. . .
|
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так:
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347
Основана на STM32F303RBT6.
На борту пять. . .
|
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
|
|
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу,
и светлой Луне.
В мире
покоя нет
и люди
не могут жить в тишине.
А жить им немного лет.
|
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила»
«Время-Деньги»
«Деньги -Пуля»
|
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога
Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
|