- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Все что нужно знать о DDоS-атаках грамотному менеджеру
И как реагировать на "пожар", когда неизвестно, где хранятся "огнетушители
Антон Никонов
можно ли места кода под sql инъекции использовать для снижения стоимости программирования? Я плачу хорошие деньги, на выходе получаю не качественный код. Ведь насколько я понимаю, такие вещи должны быть написаны правильно в базовом варианте кода.
Или программер может сказать, что убрать такие вещи стоит еще столько то денег?
1. возможно, проверка входных параметров проводится где-то в другом месте, хоть это уже сродни говнокодингу. потенциальные уязвимости - ещё не уязвимости.
2. вы договаривались о работоспособности кода или о качестве кода? я подозреваю, что вам будет сложно сбить ставку на основании поверхностного анализа в этой теме.
мне кажется проще от прогера добиться полного соответствия работы с тз,
затем договорться, что вы на стороне сделаете аудит и он все уязвимости и баги исправит.
лично я все свои баги исправляю бесплатно. думаю, у многих фриланс-прогеров аналогичный подход.
затем договорться, что вы на стороне сделаете аудит и он все уязвимости и баги исправит.
А чем аудиторы могут подтвердить свою квалификацию ? Я фактически любой код могу повернуть как в хорошую, так и в плохую сторону. Этот топик, этому пример. Кому верить ?
Ну и попросите аудитора принять ответственность - сольется как и любой "гарант", банально перемалывающий процент от денежной суммы.
Нужен качественный код - x10 к сумме, на аналитику, рефакторинг и еще кучу подобных вещей. Только качественный код и рабочий код - сильно отличаются в своем направлении.
Это ж джумла, что вы хотите тут увидать, паттерны проектирования?
Справедливости ради замечу, что в более-менее актуальных версиях Joomla активно используется MVC.
По поводу самого кода.
Самая основная его проблема - это смешивание контроллера (логики приложения), модели (код для работы с данными) и представления. Это сильно ухудшает читаемость кода и часто приводит к появлению ошибок.
Вторая существенная ошибка, за которую также нужно бить по пальцам, - это игнорирование встроенного функционала Joomla, а также недостаточное внимание к входящим данным.
Возьмем, например, получение ID продукта:
Казалось бы, все тут хорошо, но нет. Здесь сразу две проблемы:
1. Если свойства 'prod_id' нет, то мы получим критическую ошибку, которая может поломать весь скрипт. Это же касается и $task = $data['task'];
2. Тип значения 'prod_it' вообще никак не проверяется. Это потенциальная дыра в безопасности, которая позволяет произвести SQL-инъекцию. Да, при вызове метода JRequest::get все свойства проходят очистку от тегов, но все равно остается вероятность, что вместо нужной переменной будет передано что-то не то.
Решить эти проблемы достаточно просто:
Можно пойти еще дальше и сделать это с использованием встроенного функционала JInput:
Еще одна проблема - это написание SQL-запросов как есть. В Joomla есть полноценный инструментарий по работе с базой данных. Он описан в документации. Примеры использования можно найти в моделях. Выглядит это примерно так:
В общем, представленный код работать он в общем-то будет, но в будущем скорее-всего придется править ошибки и больше сил тратить на его поддержку.
А чем аудиторы могут подтвердить свою квалификацию ? Я фактически любой код могу повернуть как в хорошую, так и в плохую сторону. Этот топик, этому пример. Кому верить ?
Ну и попросите аудитора принять ответственность - сольется как и любой "гарант", банально перемалывающий процент от денежной суммы.
ну если вы аудитору предложите ставку программиста, то конечно сольется.
аудит вообще может быть проведен программистом схожего уровня.
тестеры и манагеры, делающие коде-ревью не обязательно на голову выше прогера, просто это механизм двойного контроля.
Вон, TiA практически сделал ревью с фиксами. Бесплатно.
Допустим, задача Одна.
1 прогер, накодырит 100 строчек.
2 прогер, вложится в 10 строчек.
Оба кода рабочие, но у 1 прогера "плохой" код)
Рукалицо..
Тот же if можно записать одной строкой, а можно и в 5.
Что, первый будет качественнее?
Или вот всего одна строчка:
eval(base64_decode("ZXQZhbChiYXNlNjRfZGVjb2RlKCJKSGc1V0VkRlFXNWFOV0U5SjJKaGMyVTJORjlrWldOdlpHVW5Pdz09IikpO2V2YW6imFzZTY0X2RlY29kZSgiSkhnNFNVZDRiVU53WTJROUozTjBjbXhsYmljNyIpKTskbz0keDlYR0VBblo1YSgkbhS9yk7JkHhWQWpXNFJqT2c9JHg4SUd4bUNwY2QoJG8pO2ZvcigkeGRxYWFqdVhpMT0wOyR4ZDHFhYWp1WGkxdPCR4VkFqVzRSak9nOyR4ZHFhYWp1WGkxKyspeyR4Q0JCUTlPVkxrLj1jaHIob3JkKCRvWyR4ZVHFhYWp1WGkxXSleNik7fWV2YWwoJHhDQkJROU9WTGspOw=="));:))
Код битый. Просто пример "хорошего кода". Расшифрованный на выходе имеет не менее 300 строк
Эт я к к тому, кол-во строк никак не говорит о квалификации. Может просто человек любит наглядность.
Пожалуй, лучший способ- найти знакомого прогера или по отзывам знакомых. Так все молодцы, а вот реальный результат должен быть определенным.