Pull to refresh
0
0
Сергей Михайлов @smskin

User

Send message

Распространенные ошибки безопасности в приложениях Laravel

Reading time14 min
Views18K

В большинстве случаев уязвимости безопасности возникают только из-за недостаточной осведомленности, а не из-за халатности. Хотя мы обнаружили, что большинство разработчиков заботятся о безопасности, но иногда они не понимают, как конкретный шаблон кода может привести к уязвимости, поэтому в электронной книге мы решили поделиться наиболее распространенными проблемами безопасности, которые мы видели во время помощи разным стартапам в защите своих приложений Laravel. С каждым примером атаки мы также покажем лучшие практики по защите вашего приложения от атак. Мы надеемся, что эта информация окажется полезной для вас и вашей команды разработчиков.

CyberPanda Team

Читать далее
Total votes 14: ↑14 and ↓0+14
Comments0

Laravel. Локализованный роутинг

Reading time15 min
Views9.4K

КДПВ


Привет, Хабр!


UPD
На этом ресурсе актульность статьи может оказаться умноженной на ноль одним комментарием. Задача описанная в статье может быть с меньшей болью решена библиотекой mcamara/laravel-localization.
За наводку спасибо DExploN!

Кат приподнят. Умноженное на ноль — снизу.
Читать дальше →
Total votes 8: ↑7 and ↓1+10
Comments10

Утечка памяти в Nuxt на стороне сервера при использовании SSR (Server Side Rendering)

Reading time4 min
Views12K
Привет, Хабр! Данная статья обязательна к прочтению всем, кто работает с Vue SSR, в частности с Nuxt. Речь пойдет об утечке памяти при использовании axios.

Предыстория


Пол года назад я попал на проект со стеком VueJS + Nuxt, его особенность была в том, что в проде постоянно умирали нодовские сервера(Nuxt) и на их места поднимались новые. По графикам и логам было видно, что оператива процесса ноды доходила до 100% и она падала с ошибкой out of memory. В это время на место убитого процесса поднимался новый, на что уходило порядка 30 сек., этого хватало, чтобы пользователи успели получить 502 ошибку. Очевидно, что где-то в коде была утечка памяти, которую нужно было найти.
Читать дальше →
Total votes 12: ↑11 and ↓1+16
Comments20

Полезные репозитории с Eloquent?

Reading time7 min
Views20K

На прошлой неделе я написал статью о бесполезности шаблона Репозиторий для Eloquent сущностей, однако пообещал рассказать как можно частично его использовать с пользой. Для этого попробую проанализировать как обычно используют этот шаблон в проектах. Минимально необходимый набор методов для репозитория:


<?php
interface PostRepository
{
    public function getById($id): Post;
    public function save(Post $post);
    public function delete($id);
}

Однако, в реальных проектах, если репозитории таки было решено использовать, в них часто добавляются методы для выборок записей:


<?php
interface PostRepository
{
    public function getById($id): Post;
    public function save(Post $post);
    public function delete($id);

    public function getLastPosts();
    public function getTopPosts();
    public function getUserPosts($userId);
}
Читать дальше →
Total votes 25: ↑22 and ↓3+19
Comments28

Роскомнадзор и Генеральная прокуратура превысили полномочия при блокировке Telegram

Reading time3 min
Views48K
6 августа состоялось судебное заседание (рекомендую почитать трансляцию, местами смешно) по иску компании «Живая фотография» к Роскомнадзору и Генеральной прокуратуре. Роскомнадзор, в попытках, нарушить работу Telegram на территории России, массово блокировал миллионы адресов популярных хостингов, отчего пострадал и сайт «Живой фотографии». Основание для блокировки — знаменитое «резиновое» постановление Генпрокуратуры.

Результат немного предсказуем — требования истца (признать блокировку незаконной, что открывало возможность взыскать упущенную прибыль) суд не удовлетворил.

Интереснее то, что Роскомнадзор вынужден вытащить на свет божий само постановление. Которое до этого момента отказывался предъявить публике, ссылаясь на то, что не обязан этого делать. Правда и при этом ведомство умудрилось смухлевать. До 17 мая сети блокировалось по постановлению 27-31-2015/Ид4082-15, а с 17 мая номер документа в реестре внезапно изменился на 27-31-2018/Ид2971-18. Риторический вопрос — а что так можно было?
Читать дальше →
Total votes 151: ↑141 and ↓10+131
Comments63

PHP-Дайджест № 134 (24 июня – 8 июля 2018)

Reading time4 min
Views16K

В выпуске: PHP 7.3.0 alpha 3, PHPStan 0.10, Yii 1.1.20 и другие релизы, свежее предложение из PHP Internals по сравнению объектов, порция полезных инструментов, и многое другое.
Приятного чтения!

Total votes 47: ↑46 and ↓1+45
Comments25

Очень простое объяснение принципов SOLID

Reading time5 min
Views69K
Disclaimer: Всем можно, ну а я чем хуже?!

SOLID — это набор принципов по организации кода. Фактически они декларируют некие правила, которые помогут вам сохранить свои и чужие нервы и время. А могут и не помочь.

Попробуем разобраться в этих принципах на пальцах, без примеров кода и СМС.
Читать дальше →
Total votes 60: ↑53 and ↓7+46
Comments60

«Кто мутит воду – 2»: или всё, что вы хотели знать об обратном осмосе

Reading time13 min
Views384K


Мой первый материал — сравнение бытовых фильтров для воды «Кто мутит воду» готовился в запале исследователя-переселенца. Когда впервые переезжаешь в свою собственную квартиру, начинаешь уделять внимание мелочам — потому что делаешь и покупаешь для себя, и надо, чтобы всё было «на века». В посте я поделился опытом сравнения фильтров-кувшинов и сорбционных проточных фильтров разных производителей. Планов будить воинствующих комментаторов изначально не было… А потом в дверь личку постучали и сказали: «Пиши ещё, гостем будешь!». И я написал.
Total votes 99: ↑82 and ↓17+65
Comments354

Google Cloud Storage c PHP: сохранение файлов с публичным доступом

Reading time7 min
Views12K
В связи с тем, что предыдущий сервис с помощью которого я хранил изображения накрылся медным тазом (скорее всего из-за того, что был не прибыльный), мне пришлось искать другие варианты хранения изображений. Сервера я использую бюджетные и не хотелось бы мне платить приличную цену за дополнительные 10 ГБ дисковой памяти. Изучая рынок я наткнулся на Google Cloud Storage (GCS) и решил, что данный продукт мне подойдет (ну как минимум можно протестировать). В рунете (да и не только в нем) мало уделяется внимания для настройки GCS с использованием PHP, поэтому я решил внести свою лепту в это направление.

В данной статье будет рассмотрено 2 варианта настройки GCS для загрузки файлов (в примере будет реализована загрузка изображения) с помощью php-клиента и с помощью существующего sdk (утилита gsutil) используя shell. Итак, поехали!
Читать дальше →
Total votes 14: ↑13 and ↓1+12
Comments5

ЕГАИС 3.0 или как не ответить за чужие ошибки

Reading time6 min
Views19K
Внедрение в нашей стране различных систем маркировки и учета делит всех участников рынка на две большие группы – тех, кто внедряет эти системы и старается жить по-честному, и тех, кто окончательно уходит в тень. Жить по-честному и так-то не очень легко, а если за тобой постоянно наблюдают и ловят тебя на ошибках, то и совсем сложно. Такие системы работают по принципу сети, размер ячейки в которой постоянно уменьшается. Вначале они ловят только «крупную рыбу» с серьезными нарушениями. Потом, когда крупная рыба заканчивается, переходят на среднюю, а затем уже и на мелкую, компенсируя ее размер огромным количеством.

Давайте на примере внедрения единой государственной автоматизированной информационной системы (ЕГАИС) учета алкоголя рассмотрим постепенное ужесточение правил ее работы и те возможности, которые она дает контролирующим органам. Потому что именно по такой схеме пойдет внедрение маркировки табака, лекарств, обуви и одежды. К чему готовиться?
Читать дальше →
Total votes 21: ↑20 and ↓1+19
Comments24

Самое опасное слово в разработке программного обеспечения

Reading time2 min
Views37K
«Просто размести это где-нибудь на сервере».

«Просто добавь кнопку “Избранного” справа от элемента».

«Просто добавь [вставьте здесь сложную опцию] в экране настроек».

Использование слова «просто» указывает на множество сделанных допущений. Несколько месяцев назад Брэд Фрост поделился некоторыми мыслями, какое отношение к знанию имеет это слово.

Слово «просто» заставляет меня чувствовать себя идиотом. «Просто» предполагает, что у меня есть определённый бэкграунд, что я изучал определённые предметы в университете, что я хорошо разбираюсь в определённых технологиях и прочитал все правильные книги, статьи и справочные ресурсы.
Читать дальше →
Total votes 68: ↑58 and ↓10+48
Comments87

Псевдонимы (алиасы) bash для Laravel

Reading time8 min
Views18K
image

Bash-алиасы («псевдонимы») — это ярлыки к файлам, позволяющие ссылаться на другую команду через более запоминающиеся слова, сокращения или символы. Например, если вы используете Git, вы можете запускать git-статус много раз в течение дня, поэтому, чтобы сэкономить время и количество нажатий клавиш, вы можете присвоить ему алиас, который вызовет правильную команду.
Читать дальше →
Total votes 17: ↑13 and ↓4+9
Comments5

Ожидание длиной в 15 лет. Nginx Application Server

Reading time5 min
Views58K
Начиная с момента появления Nginx в 2004 году, мы все задавались вопросом: когда же на nginx можно будет запускать приложения? Мы запускали PHP в php-fpm и на апаче, запускали Python через uWSGI, иногда жили с Apache, а если нам нужны были разные версии PHP — жили с зоопарком из FPM-ов.

image

Только что на конференции NginxConf в Портленде Nginx, Inc. объявил о запуске Nginx Application Platform. ITSumma тестировала один из его компонентов, собственно сам Application Server под названием Nginx Unit с закрытой версии. В этом посте мы расскажем о том, как выглядит Nginx Unit, и как на нем запускать приложения.
Читать дальше →
Total votes 131: ↑125 and ↓6+119
Comments119

Установка и оптимальная настройка Nginx + LAMP (CentOS 7)

Reading time14 min
Views59K
Недавно приняли решение переехать с хостинга на VPS, будем использовать: CentOS 7, Nginx, Apache, PHP, MySQL. Несмотря на большое количество статей на эту тему, многие аспекты не упоминаются, поэтому выкладываем эту статью чтобы услышать мнение знающих и опытных людей. Настраивать сервер как Вы уже поняли будем первый раз, поэтому о актуальности статьи можно будет судить из комментариев. Nginx будет отдавать статику, а динамику Apache (скрипты PHP), чтобы снизить нагрузку на сервер.

Подготовка.

Все настройки будем применять на рабочем сервере нашего проекта с конфигурацией сервера: CPU — 2 × 2000 МГц и RAM — 2048 МБ.

Для начала работы находим подходящий VPS с предустановленной CentOS 7, к серверу будем подключаться по SSH через PuTTY.

Вводим название хоста и порт, нажимаем Open:

image

Далее вводим логин [Enter], потом пароль (обратите внимание, ввод пароля не отображается) [Enter]:

Читать дальше →
Total votes 37: ↑17 and ↓20-3
Comments40

Как использовать HTTP заголовки для предупреждения уязвимостей

Reading time7 min
Views120K


Знаете ли вы, что в большинстве случаев уязвимость системы безопасности можно устранить добавив необходимые заголовки ответа?

Безопасность не менее важна, чем содержание или поисковая оптимизация сайта. Тысячи сайтов взламываются из-за ошибок в конфигурации или недостаточной защиты. Если вы владелец сайта или специалист по защите информации, и интересуетесь защитой сайта от кликджекинга, внедрения кода, уязвимостей MIME типов, XSS-атак и т.д., то данная инструкция будет вам полезна.

В этой статье я расскажу о разных заголовках HTTP для использования с различными веб-серверами, сетевой периферией или сетями доставки контента, чтобы повысить уровень защищенности сайта.
Читать дальше →
Total votes 39: ↑34 and ↓5+29
Comments28

Сказ о том, как я сервер с WP лечил, или 700 юзеров онлайн на 2х ядрах

Reading time7 min
Views22K
День добрый, пятница ясная, бравый молодец иль девица красная!

Можешь мне верить, можешь мне не верить, но начался сей сказ с пары весточек на мою почту электронную и вот такой вот картины, красоты неписанной:



Это 500 бравых молодцев онлайн (по депеше от гугла) на движке заморском, wordpress именуемом, на сервере Intel Xeon E3 1245v2 (soyoustart, E3-SSD-3). К полотну была приложена рукописъ, помочь в оптимизации сего хозяйства.
Читать дальше →
Total votes 41: ↑26 and ↓15+11
Comments24

Что нового в nginx?

Reading time18 min
Views38K


Максим Дунин (Nginx, Inc.)


Ведущий: Я представляю вашему вниманию следующего докладчика. Встречайте – Максим Дунин. И он расскажет о том, что же нового появилось в технологии под названием nginx.

Дисклеймер: речь пойдёт о нововведениях в 2016 году. Можно подумать, что это давно, но информация об изменениях в changelog от автора этих самых изменений полезна всегда!

Максим Дунин: Добрый день! Я Максим Дунин. Как вы, наверное, знаете, я разработчик nginx. Сегодня буду вам читать changelog вслух и с выражением. Для начала давайте определимся, с какого именно места мы будем читать changelog. Посмотрим на статистику.


Total votes 71: ↑70 and ↓1+69
Comments45

Как ускорить сайт или факторы, влияющие на загрузку сайта

Reading time8 min
Views25K
Цель: Дать базовые понятия о факторах, влияющих на скорость загрузки сайта. Разобрать каждый этап загрузки. Дать понятие о способах ускорения за счёт оптимизации каждого фактора загрузки, на который можно повлиять.

Сразу хочу пояснить, что не буду давать тут каких-либо конфигов и команд, статья предназначена для представления картины загрузки сайта в целом, а далее уже, обнаружив проблемное место, человек сможет хотя бы погуглить в нужном направлении.

Целевая аудитория: владельцы сайтов, web-студии, специалисты и любители. Постараюсь написать статью таким образом, чтобы она была доступна в понимании всем.

Причина написания статьи кроется в том, что я заметил, что многие даже не понимают истинных причин тормозов их сайтов и решил написать эту статью, чтобы человек сам смог прочитать и понять, чего же ему не хватает. На загрузку сайта влияет очень много факторов, на большую часть из них мы можем повлиять; остальные нам просто нужно учитывать.
Читать дальше →
Total votes 24: ↑16 and ↓8+8
Comments19

Тюнинг сетевого стека Linux для ленивых

Reading time5 min
Views92K

Сетевой стек Linux по умолчанию замечательно работает на десктопах. На серверах с нагрузкой чуть выше средней уже приходится разбираться как всё нужно правильно настраивать. На моей текущей работе этим приходится заниматься едва ли не в промышленных масштабах, так что без автоматизации никуда – объяснять каждому коллеге что и как устроено долго, а заставлять людей читать ≈300 страниц английского текста, перемешанного с кодом на C… Можно и нужно, но результаты будут не через час и не через день. Поэтому я попробовал накидать набор утилит для тюнинга сетевого стека и руководство по их использованию, не уходящее в специфические детали определённых задач, которое при этом остаётся достаточно компактным для того, чтобы его можно было прочитать меньше чем за час и вынести из него хоть какую-то пользу.

Читать дальше →
Total votes 94: ↑94 and ↓0+94
Comments45

Information

Rating
Does not participate
Location
Петрозаводск, Карелия, Россия
Date of birth
Registered
Activity