Руководство по обеспечению безопасности ajax php webapp

У меня есть небольшое приложение AJAX, написанное на PHP, которое я не защитил с самого начала. Я бы хотел, чтобы некоторые рекомендации о том, как теперь защитить приложение, что нужно реализовать и проверить. Я не нашел исчерпывающих руководств по Google и надеюсь, что некоторые из них могут быть рекомендованы.

Это небольшое приложение, которое подключается и отображает записи из базы данных mysql. Он не использует никаких внешних библиотек.

Я не уверен, как защитить при передаче в переменных, таких как:

if (isset($_GET["cmd"])) $cmd = $_GET["cmd"]; 

Должен ли я просто объявить $ cmd что-то перед check isset?

Если вы говорите о защите приложения (в отличие от сервера / среды, на которой он включен, – я не очень квалифицирован, чтобы обращаться), я бы рассмотрел следующее:

  1. Убедитесь, что пользовательские входы разобраны / очищены, чтобы они не могли делать такие вещи, как атаки SQL-инъекций . Сюда входят любые запросы ajax, где пользовательский ввод может быть сохранен в строке запроса. На самом деле все, что передается в приложение из строки запроса, должно быть проверено / очищено таким образом .
  2. Используете ли вы какие-либо пароли? Если это так, используйте SSL, чтобы остановить обнюхивание пакетов. И хэш ваши пароли в вашей базе данных с солью
  3. Быстрый Google откопал это, что выглядит довольно хорошо: http://www.securityfocus.com/infocus/1706
  4. Некоторые советы по обеспечению пользовательского ввода http://www.dagondesign.com/articles/writing-secure-php-scripts-part-1/

Наиболее важным правилом при обработке пользовательского ввода является: Проверка ввода, выход выхода .

Вы ищете окончательное руководство по безопасности? Пришлите мне копию, когда найдете ее!

Короткий контрольный список:

  • Уязвимости SQL?
  • Подтвердите свои входы $ _GET и $ _POST и удалите что-нибудь смешное
  • Потеряйте get_magic_quotes_gpc () (или что-то, что он вызвал)

И, конечно же, все, что должен сделать ваш sys-admin:

  • последняя версия PHP
  • обновленная версия MySQL

Я не уверен, что никаких внешних компонентов не делает вас более безопасным. Я использую ADODB для PHP, чтобы обрабатывать все мои вещи SQL. Я знаю, что он проверяет, нет ли приёмных, поэтому мне не нужно это делать.