Понимание безопасности CGI и SQL с нуля - PullRequest
2 голосов
/ 15 июня 2010

Этот вопрос предназначен для учебных целей.Предположим, я пишу простую консоль администрирования SQL с использованием CGI и Python.На http://something.com/admin, эта консоль администратора должна позволять мне изменять базу данных SQL (т. Е. Создавать и изменять таблицы, а также создавать и изменять записи), используя обычный form.

  1. .наименее безопасный случай, любой может получить доступ к http://something.com/admin и изменить базу данных.
  2. Вы можете защитить паролем http://something.com/admin. Но как только вы начнете использовать консоль администратора, информация все еще передается в виде простого текста.
  3. Итак, вы используете HTTPS для защиты передаваемых данных.

Вопросы:

  1. Чтобы описать учащемуся, как бы вы постепенно добавлять безопасность в наименее безопасную среду, чтобы сделать ее максимально безопасной?Как бы вы изменили / дополнили мои три (возможно, ошибочные) действия выше?
  2. Какие базовые инструменты в Python делают ваши шаги возможными?
  3. Необязательно: Теперь, когда я понимаю процесс, как сложные библиотеки и интегрированные среды по своей сути достигают этого уровня безопасности?

Ответы [ 3 ]

3 голосов
/ 16 июня 2010

Безопасность - это не исправление, это целостный подход.

Постепенное добавление безопасности - не очень хорошая идея .Вы должны интегрировать безопасность в свое приложение с нуля.

Лучший совет, который я могу вам дать, - попытаться думать как злоумышленник.Подумайте сами: «Если бы я хотел сделать что-то, чего я не должен был делать, как бы я это сделал?»

Если вы разрабатываете приложение, использующее базу данных, мы неразрешить SQL-инъекции .Вам также следует знать о некоторых из самых популярных веб-уязвимостей , если вы создаете веб-приложение.

2 голосов
/ 16 июня 2010

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

2 голосов
/ 16 июня 2010

Не относится к Python, но любые административные функции, обеспечивающие такой уровень контроля над системой, должны быть защищены как с помощью SSL, так и с помощью механизма аутентификации и авторизации (вход в систему) как минимум .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...