- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Кодер - только один раз.
Когда возомнит себя программистом.
В чем главное отличие хорошего кодера от программиста? Ведь в принципе кодер должен писать читабельный и рабочий код. Иначе это уже плохой кодер. Бывает, что кодеры пишут довольно большие куски кода, так что критерий масштаба тоже не пригоден. Так в чем же разница?
По моему скромному мнению разница в сфере ответственности. По большому счету кодер не несет ответственности за проект, скрипт и т.п. Он как правило обеспечивает некоторый конкретный функционал, но не более. Правда и не менее :)
Программист же думает немного шире. Он думает о производительности, о простоте доработки и поддержки и о.... безопасности.
Пару примеров:
На довольно приличном количестве сайтов стоит форма обратной связи с капчей которая на самом деле не существует. На самом деле нам выводят одну из дюжины сохраненных картинок.
Т.е. вариантов капчи всего дюжина, и робот-спамер может просто лупить один из этих вариантов. За десяток попыток точно пробьет.
Опять таки про капчу - часто бывает забавная ситуация когда правильный ответ передается вместе с проверяемым. Частный случай такого варианта - передавать правильный ответ в тексте страницы для того, чтобы можно было проверять правильность капчи перед ее отправкой (имитация AJAX).
XSS. Отсутствие универсальных методов фильтрации приводит к тому, что многие ленятся делать фильтр в "неважных" формах. Например можно не фильтровать данные из формы поиска. Ведь вроде как эти данные нигде не используются дальше. Вот только если "скормить" админу ссылку, которая отправит его на страницу, где через данную уязвимость будет добавлен определенный код. Ты его не видешь, читаешь себе спокойненько статейку, на своем или даже чужом сайте, а оно уже под твоим именем в админке шарится. :)
XSRF. Обычно идет как продолжение XSS. Суть ошибки заключается в том, что при получении данных из формы скрипт проверяет только куки пользователя, но не проверяет с какой страницы он пришел. В результате правильно оформленная ссылка отправившая пользователя на форму внутри админки может в принципе делать что угодно. (Частный случай - когда проверяют только реферер, но не проверяют "маркеры безопасности".)
Многие разработчики (в том числе и программисты этим грешат) вместо шаблонизаторов используют шаблоны с включением пхп-кода. Помимо осложнения понимания такого перемешанного кода это часто бывает еще и опасно. Если есть возможность менять такие шаблоны прямо из админки, и нет дополнительных проверок и вопросов, то имея XSRF-уязвимость (см. выше) можно не только менять содержимое сайта, но и банально заливать любой код, который будет выполняться при любых действиях. Это нам дает возможность банально скопировать весь сайт, со всеми данными, с клиентской базой и т.п.
Вышеуказанные ошибки в основном совершают кодеры. Программисты редко наступают на эти грабли, хотя ошибки бывают у всех. Для примера приведу ошибки свойственные программистам.
Знаете ли вы такой шаблонизатор как SMARTY? мощный шаблонизатор входящий в состав очень большого количества движков. Один маленький нюанс - в нем есть почти все возможности php. С одной стороны это хорошо, а с другой стороны - там есть возможность напрямую получить доступ к post/get переменным. Т.о. дизайнер/верстальщик, который захочет например выводить запрос в форме поиска сделает нам шаблон содержащий XSS уязвимость. А все потому, что не должен дизайнер или верстальщик знать основ безопасности сайтов. Не его это дело.
Ну и напоследок вкусняшка: Все мы знаем такую биржу как sape. Пожалуй срок давности такой информации уже прошел... в общем пару лет назад был большой ажиотаж, на тему того, что некоторые люди могли узнать скрытые адреса площадок торгующих ссылками. Один из методов как это можно было сделать очень прост. (сразу предупрежу, что данная уязвимость устранена несколько лет назад) Черный список содержал конкретные адреса сайтов, но в поиске площадок была возможность добавить площадку в черный список не зная еще ее адреса. Т.о. после нажатия на ссылку "добавить в черный список площадку номер такой-то" в черном списке появлялся АДРЕС сайта а не его номер.
Продолжение следует.
И если кое-кто не поленится, то не только от меня :)
Как Вы быстро поделили всех (как же их вместе назвать?) на кодеров и программистов. Сами придумали? А то могу еще подкинуть - на заре АСУнизации были разные специалисты: постановщики, алгоритмисты, кодировщики... Это сейчас в целях экономии такое разделение упразднили. Выиграли или проиграли... Вообще к чему вся эта философия?
Rassmus, вообще от задачи зависит.
В некоторых проектах без постановщика, аналитика, десятка внедренцев и т.п. не обойтись..
а еще бывают инженеры по интерфейсам.
Правда справедливости ради надо упомянуть, что Дуров от такой парадигмы ушел, и не так много потерял. Соизмеримо с тем что приобрел :) Но там кодеров нет как класса.
Вообще цели было две - первое это просто хотелось напомнить коллегам о принципиальном различии в профессиях штоль... На самом деле кодер в моем понимании не несет негативной коннотации. Это просто другая работа. Есть много задач, где программист это не только дороже, но и менее эффективно.
Вторая цель - банально поделиться частыми ошибками в коде. Молодежи на заметку так сказать.
Просто так получилось, что я за последнее время много разных движков перековырял, и как-то все это в голове крутится.
Вторая цель - банально поделиться частыми ошибками в коде. Молодежи на заметку так сказать.
Просто так получилось, что я за последнее время много разных движков перековырял, и как-то все это в голове крутится.
Так лучше оформите в статью, где распишите где возникают уязвимости, и как их устранять при получении через POST и GET данных. Потому что написать что вот есть XSS каждый может.
Fearful, полностью согласен.
Алгоритмист... ммм, как много... в этом звуке... а ведь действительно. Его задача, грубо, оччччень грубо, блок схема, затем. вступали в силу другие структуры, не поверите... СБ..., сейчас, грубо, очччень грубо - тестеры... потом кодеры, но тогда и таких слоВей не было - техники.
И... опять тестеры, но... с подачи ПОСТАНОВЩИКА задач...
зы... в сторону... эх молодеЖь :)
Статья ни о чём.
Если говорить коротко: Программисты, задумывайтесь о безопасности в проектах.
Я поместил всю статью в 4 слова.
Вообще то для таких вещей есть тестировщики, задача которых находить подобные косяки.
А когда программист и проектировщик и дизайнер интерфейса и верстальщик и саппорт - имел он эти уязвимости с большой колокольни. Пока ты будешь продумывать безопасное и в то же время функциональное редактирование темплейтов из админки - конкуренты выпустят и будут вовсю продавать продукт.
Фигня все это, все знают что надо делать безопасно. Но не все готовы тратить на это дополнительное время и финансы. Особенно с учетом того, что в админке редактируют как правило доверенные пользователи, поэтому ждать от них эксплойтов не очень логично.
.....
Так и не понял топик ))))
Многие разработчики (в том числе и программисты этим грешат) вместо шаблонизаторов используют шаблоны с включением пхп-кода.
Это не грешение - это в большинстве своём стандарт, ибо зачастую использование шаблонизаторов просто не оправдано (особенно смешит аргумент, что это позволит облегчить изучаемость дизайнером :) ).
В большинстве современных фреймворков, которые мне попадались - View идут как чистый пхп, а уже как второстепенное - есть возможность прикрутить смарти и т.д.
Так лучше оформите в статью, где распишите где возникают уязвимости, и как их устранять при получении через POST и GET данных. Потому что написать что вот есть XSS каждый может.
Статей на тему уязвимостей много. Но читают их мало. :)
Статья ни о чём.
Если говорить коротко: Программисты, задумывайтесь о безопасности в проектах.
Я поместил всю статью в 4 слова.
Ну еще надо добавить "вебмастера, заказывайте кодинг у кодера, а программирование у программиста" это еще девять слов :)
Ну а если серьезно, то сокращенный вариант не для людей, а для роботов.
Совсем недавно отписал человеку (кодеру), что у него XSS. Он сказал, что это ерунда.
Еще слышал от одного разработчика, что увод его куков это мелочи.
Знаю человека, который в свое время отмахнулся, когда ему сказали, что не надо ставить уязвимый скрипт... Он сказал, что мол это не особо важный сайт, и что не страшно если что.
С тех пор как у него через эту уязвимость слили важный сайт лежащий на том же хостинге, он уж так не думает :) В общем список можно продолжать бесконечно, смысл в том, что человек на примерах информацию усваивает лучше.
Вообще то для таких вещей есть тестировщики, задача которых находить подобные косяки.
Должны, но почему-то большинство продуктов этого не проходят.
с учетом того, что в админке редактируют как правило доверенные пользователи, поэтому ждать от них эксплойтов не очень логично.
Вот собственно об этом и статья :)
Доверенному пользователю достаточно побывать на сайте злоумышленника, чтобы под его правами можно было внести изменения. Нельзя проследить, чтобы "доверенный пользователь" всегда выходил из админки закончив все действия, чтобы он паралельно никуда не ходил, чтобы вообще в принципе не ходил по стремным сайтам. (а сайт может быть и вполне приличным, но взломанным). Часто проще просто не допускать уязвимостей :)
Так и не понял топик ))))
Так и не понял комментарий :)
Это не грешение - это в большинстве своём стандарт, ибо зачастую использование шаблонизаторов просто не оправдано
Зачастую, но не всегда. И принимая такое решение, нужно четко отдавать себе отчет о преимуществах и недостатках такого выбора. Можно даже банально не давать доступ к редактированию шаблонов из админки. Разные есть варианты. Но реально это как правило не делают. Ну и шаблоны такие тоже надо как-бы проверять после модификации. Тоже никто не делает обычно. А вдруг дизайнер сверставший тебе дизайн за "отзыв" туда вирус внедрил? Или тупо $_GET использовал? Да мало ли чего он там начудить мог....
Вообще поколупав с десяток чужих скриптов я пришел к трем выводам:
1 - Ой, а ведь это и у меня есть...
2 - Надо таки доводить свой движок до публичного релиза. Задолбался исправлять чужие ошибки.
3 - Стоит поделиться мыслями об этом в популярной форме.
Есть ещё быдлокодеры. Это я так, подбросить говнеца на вентилятор :) Они такие же как быдлофотографы, быдлодиджеи и прочие модные хипстеры.