Хорошая Php-платформа для надежной защиты

Я пытаюсь выбрать структуру, которая обеспечивает действительно хорошую безопасность веб-приложений, защищает от максимально возможного количества OWASP Top-10, например:

  • Sql Injection
  • XSS
  • CSRF
  • Аутентификация
  • Разрешение
  • и др.

Дело в том, что я очень сильно искал исследования: CakePHP, Zend, Yii, Code Igniter, Kohana, а некоторые имеют базовую аутентификацию, возможно, небольшую авторизацию, но ничего для любого приложения, которое нуждается в надежной защите кода.

Является ли большинство типов уязвимостей выше в настоящее время обеспеченным только написанием пользовательского кода в этих рамках?

Это мой первый опыт использования фреймворков, все, вплоть до этого момента, было обычным веб-приложениями php. Вся моя мысль для php-фреймворков заключалась в том, что было бы легко защитить от этих уязвимостей, учитывая, что это не изначально, зачем использовать их? Или есть структура там, где я не смотрю, что лучше, чем перечисленные выше для сильной безопасности веб-приложений? Благодаря

Ответ 1

Безопасность не может применяться к приложению, например, к шпону. Каждый вид проблемы безопасности рассматривается каким-то другим способом, и большинство фреймворков PHP предоставляют инструменты для написания защищенного кода:

  • Борьба с HTML-инъекцией/XSS требует использования механизма шаблона (например, Twig), который избегает значений по умолчанию или управляется компонентами подход к отображению HTML. Нет рамок поможет вам, если вы разрешите людям загружать свои файлы и они обслуживаются из вашего собственного домена (вы должны использовать отдельный домен для этого);

  • Вы можете избежать SQL-инъекции, используя db-помощники, которые избегают запроса параметры; каждая из указанных вами рамок предусматривает те (и Конечно, вы можете использовать простой PDO);

  • Вы можете сражаться с CSRF, используя токены, связанные с сеансом. Каждая структура предлагает некоторое решение. В каждом случае, однако, вы должны помочь (путем добавления маркера к каждой форме или с помощью форма абстракции, предоставляемой каркасом).

Итак, в некотором смысле - да, вы должны думать о безопасности. Я не думаю, что любая фреймворк PHP может сделать что-то еще, что они уже делают, если не произойдет большой сдвиг парадигмы, который позволяет нам разрабатывать приложения, перетаскивая яркие квадратики по экрану, не касаясь грязных, небезопасных вещей, таких как HTML или SQL. Какую поддержку вы ожидаете?

Ответ 2

Я также сказал бы попробовать CodeIgniter.

  • Sql-Injection - если вы используете активный шаблон записи в CodeIgniter, вы в безопасности
  • XSS - это конфиг-значение в config.php
  • CSRF - также значение конфигурации в config.php
  • Вход в систему и т.д. - для этого есть библиотеки, такие как https://github.com/EllisLab/CodeIgniter/wiki/SimpleLoginSecure

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

Изменение: так как я все еще получаю голосов здесь в 2019 году, пожалуйста, проверьте https://laravel.com/

Ответ 3

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

Например, как Symfony (1.x, 2), так и Zend Framework имеют компонент/подструктуру формы, который внедряет CSRF из коробки. Но это не значит, что он включен по умолчанию (symfony - это... не помню, есть ли zf или нет). То же самое с XSS, когда мы говорим об выходной стороне выхода на уровне представления.

Теперь, когда дело доходит до каркасных предпочтений для больших приложений, мне лично нравятся Symfony 1.x и Symfony2, Zend Framework 1.x(не говоря уже о zf2, потому что я даже не играл с ним еще). Для простых вещей мне нравится Silex (на основе компонентов Symfony).