Skip to content

websecret/junior-backend-exam

Repository files navigation

Задача 1

Сайт одного из наших старых клиентов взломали. После взлома на сайте появилась странная красная плашка снизу страницы (https://imgur.com/gYWYQ0r). Исходников в гите у нас не осталось, могу дать только архив с прода ( exam.tgz).

Задача: найти и удалить вредоносный код. В ответе указать необходимые действия, чтобы от него избавиться.

Распаковать архив:

tar zxvf exam.tgz exam

Задача 2

Есть два сервиса: app/Services/Loggers/{Foo,Bar}.php. Каждый из них хочет что-то логировать, причем каждый из них хочет логировать в свой файл (storage/logs/foo.log для сервиса Foo, storage/logs/bar.log -- для Bar). Необходимо решить эту задачу не меняя сами сервисы, т.е. не меняя код в app/Services/Loggers/{Foo,Bar}.php.

Для быстрой проверки происходящего был подготовлен тест tests/Unit/LoggingTest.php, который можно запустить следующей командой: ./vendor/bin/phpunit tests/Unit/LoggingTest.php. Он должен отработать.

Задача 3

Есть контроллер app/Http/Controllers/ActionController.php который диспатчит ивент.

Нужно записать в логи строку action fired from ip: $ip, вместо $ip должнен подстовляться ваш ip из реквеста. В контроллере код менять нельзя.

Для проверки используем комманду

php artisan serve # сервер будет доступен по url http://localhost:8000

Контроллер прописан в роутах api.php

Задача 4

Расширяем задачу 3. Теперь нужно писать в логи строку раз в минуту, при обращении с одного и того же ip адреса. Если метод вызывается чаще, то пишем в логи строку duplicate action from ip: $ip

БД использовать нельзя. Менять код контроллера попрежнему менять нельзя.

Задача 5

Есть контроллер app/Http/Controllers/ResponseController.php Контроллер отдает объект сервиса app/Services/ResponseClass/ResponseClass.php

Если посмотреть http://localhost:8000/api/response, то мы увидим строку. Нужно не меняя код сервис и контроллера отдать json формата:

{
  "name": "Foo",
  "description": "Bar"
}

Можно изменять код только в трейте Convert и интерфейсе Response

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages