RDot

RDot (https://rdot.org/forum/index.php)
-   Аудит Web-приложений/Web Application Security Audit (https://rdot.org/forum/forumdisplay.php?f=27)
-   -   Аудит сайта на самописной системе управления (https://rdot.org/forum/showthread.php?t=1412)

C3 ~ RET 20.04.2011 01:16

Цитата:

Сообщение от Qwazar (Сообщение 16158)
Ладно, проехали. Ты о чём то другом разговариваешь.

Почему же о другом? Очень даже не о другом. Есть 3 способа фикса ошибок:

1) Наложение костылей;
2) Изменение концепции;
3) Отказ от признания ошибки.

1 подход не результативен в силу появления ошибок в самих костылях - пример тому - Microsoft Windows со своими патчами. 2 подход тоже не без греха, однако в силу единства концепции подразумевает изначально меньшее число потенциальных ошибок. 3 подход очевиден - не умеешь признавать ошибки - и патчишь как тебе вздумается или вообще не патчишь. И то и другое - пагубно.

CrazyPilot 20.04.2011 13:46

Обновил сайт на http://cph.su.
Надеюсь, теперь взломать будет сложнее.
Оборону усилил, жду новых "набегов":) Заранее спасибо:)

Raz0r 20.04.2011 22:51

Судя по коду, админу в любом случае придется учиться писать грамотный код, поэтому советую ТС разобраться с PDO/DbSimple/etc и по мере возможности начать использовать в продакшне именно prepared statements.
Но сначала необходимо разобраться с типами данных, понять почему в той или иной ситуации возможны инъекции и как от них избавиться средствами чистого PHP.

CrazyPilot 21.04.2011 09:25

Вам удалось взломать? Если да, то прошу отписаться в личку, как вы это сделали)

CrazyPilot 21.04.2011 12:09

Цитата:

Сообщение от Raz0r (Сообщение 16202)
Судя по коду, админу в любом случае придется учиться писать грамотный код

Если речь идет о коде с eregi, который был выложен в самом начале темы, то он был размещен в движке прямо перед размещением ссылки на вашем форуме, в надежде хоть как-то защититься. С тем, что этот код совершенно бесполезный, я полностью убедился :)

Про prepared statements - согласен, нужно переходить на них, но это занимает много вермени, так уже достаточно много кода реализовано на обертках к стандартному mysql_query. Со временем перейду на mysqli.
Но сейчас все переменные фильтруются, Позаботился о том, чтобы в новых скриптах было тяжело забыть отфильтровать переменную ( из POST / GET запроса переменная берется с помощью специальной функции, добавил туда обязательным параметром метод фильтрации).

che 22.05.2011 23:11

Цитата:

Сообщение от Jokester (Сообщение 16128)
Вспомнилось для int

$a = 0+$GLOBALS['a'];

PS Всерьёз не воспринимать, привет админу одного из хакфорумов :)

а можно подробнее, чё то я не вкурил :(

Jokester 23.05.2011 00:38

Цитата:

Сообщение от che (Сообщение 16923)
а можно подробнее, чё то я не вкурил :(

Ну это приведение к инт. Вобщем-то обойти не удалось, так что безопасно, а стёб по поводу самой реализации )

che 23.05.2011 02:24

Цитата:

Сообщение от Jokester (Сообщение 16927)
Ну это приведение к инт. Вобщем-то обойти не удалось, так что безопасно, а стёб по поводу самой реализации )

блин я то думал что как то обходится, а такие костыли я встречал $league = $league *1; выглядит не очень но помогает

shaitanych 30.05.2011 18:19

Цитата:

$league = $league *1;
а вот такое действия защищает ли ?

che 05.06.2011 23:54

Цитата:

Сообщение от shaitanych (Сообщение 17130)
а вот такое действия защищает ли ?

а ты проверь и узнаешь, если получится дам ссылку где этот код стоит много трафа поимеешь :)


Часовой пояс GMT +3, время: 18:17.

Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2021, Jelsoft Enterprises Ltd. Перевод: zCarot