Я PHP / MySQL noob, который ничего не знает о безопасности в Интернете.
Не могли бы вы указать мне некоторые ресурсы, которые помогут мне в этом? (Уровень начального уровня, пожалуйста!)
Я предлагаю две вещи:
Этот вопрос хорошо ответил и охватывает атаки на инъекции MySQL (одна из наиболее распространенных проблем. Этот вопрос также хорошо документирован и хорошо описывает атаки XSS (межсайтовый скриптинг).
Наконец, узнайте о PHP.INI и о том, как его настроить и что на самом деле открыто / закрыто и включено / выключено. Хороший хозяин, например, никогда не включит регистровые глобалы, но вы должны хотя бы знать, что это такое и почему его проверять. У PHP Security есть ресурсы по этому и многим другим проблемам безопасности PHP.
Возможно, PHP не лучший старт. Особенно, если вы в значительной степени сворачиваете свой собственный код. Это не совсем держит вас в руке с проблемами безопасности. (fd: Я хочу, чтобы PHP ушел по разным причинам.)
Но некоторые общие правила:
<select>
содержащий a, b и c, не означает, что вы получите один из них. Javascript не является гарантией чего-либо. Ссылаться на них можно легко. Данные POST можно легко подделать. Текстовые поля могут содержать любой символ, а не только те, которые вы ожидаете. mysql_real_escape_string()
будет исправлять SQL-инъекцию, но тогда вы должны помнить, что используете его везде. Это создает множество мест, где вы могли бы совершить ошибку и забыть свой ритуал побега. Вместо этого используйте подготовленные заявления, и проблема полностью исчезнет . Другой пример: Pylons (фреймворк Python) устанавливает свои шаблоны, поэтому любая переменная с HTML-экранируется, если вы явно не задали иное. XSS больше не проблема, и мне никогда не придется беспокоиться о том, чтобы вручную избежать все, что я печатаю. Крис Шифлетт – разработчик PHP-программирования и безопасности:
Если у вас есть время, вы можете взглянуть на слайды, используемые Стефаном Эссером во время его конференции на Нидерландской конференции PHP несколько месяцев назад, название которой было «PHP Crash Course для начинающих».
Есть пара PDF:
Это может быть полезно.
Затем не стесняйтесь искать немного информации, не относящуюся к PHP: некоторые проблемы безопасности (такие как XSS, SQL Injections, CSRF, …) не являются специфическими для PHP: только технические средства для их предотвращения специфичны; поэтому вы можете найти много информации о таких сайтах, как Wikipedia или веб-сайт OWASP