Я просто хотел знать то, что некоторые основные методы безопасности PHP, которые я должен использовать при создании веб-страницы, которая принимает статьи?
Я довольно плохо знаком с PHP и задавался вопросом, что удержит форт, пока я не буду специалистом по безопасности?
Было бы разумно начать с использования фреймворка, такого как Drupal или CakePHP. Таким образом, вы сможете извлечь уроки из того, как они реализовали безопасность, и воспользоваться тем фактом, что это уже было сделано. Кривая обучения достаточно крутая, без необходимости использовать собственные механизмы аутентификации и т. Д.
Ну, как упоминалось в других ответах, существует ряд различных направлений, в которых ваши сценарии PHP могут быть скомпрометированы.
Вот лишь пара из них:
Есть несколько способов справиться с каждым из них. Вот на что стоит обратить внимание:
При приеме пользовательского текста, который позже будет отображаться, следует учитывать два фронта.
Во-первых, вам необходимо защитить свою базу данных от атак с использованием инъекций. Для этого есть простая функция PHP: mysql_real_escape_string () обычно достаточно для защиты вашей базы данных от внедрения при передаче этой строки для сохранения в качестве значения поля.
Оттуда вы должны быть осторожны с отображением, поскольку пользователь, которому разрешено загружать HTML-код, может делать неприятные вещи с другими пользователями , когда этот код отображается. Если вы пишете статьи с открытым текстом, вы можете просто htmlspecialchars () получившийся текст. (вы также, вероятно, захотите преобразовать символы новой строки в теги
.) Если вы используете решение для форматирования, такое как механизм Markdown, используемый на этом сайте, эти решения обычно обеспечивают дезинфекцию HTML как функцию механизма, но обязательно прочтите документацию и убедитесь.
Убедитесь, что вы также проверяете переменные GET / POST, используемые для отправки статей. Это само собой разумеется, и выполняемая проверка должна быть адаптирована к тому, что ваш сайт делает со своей логикой.
возможно, два совета помогут вам получить более безопасные веб-сайты.
когда вам нужно вставить в базу данных или удалить, очистить входные данные, использовать подготовленные операторы mysql или утверждать значения, которые приходят по почте или получают таким образом:
if (! Empty ($ _ GET ["integer_like_id_value"]) {{ {1}} $ integer_id_value = (int) $ _ GET ["integer_like_id_value"];
} else {
// кажется, что этот материал не является допустимым, приложение, ошибка журнала? 1}} die ();
}
Когда ваш проект готов к общедоступному использованию, обычно рекомендуется установить error_reporting (0);
Это не обеспечит большей безопасности, но значительно усложняет (обычно) поиск злоумышленниками возможные проблемы с безопасностью вашего сайта.
Это слишком широко, может вам стоит попробовать немного сузить его.
Какая безопасность? Для паролей? Хотите что-то ограничить? Внедрение SQL? Внедрение HTML? Междоменная безопасность?
Вам нужно многое узнать, и вам следует начать как можно скорее.
Во-первых, если вы принимаете статьи (и, вероятно, используете WYSIWYG и принимаете HTML), используйте что-нибудь для анализа содержимого и исключения вещей, которые могут сделать вас уязвимыми для XSS и т.п.
Примером является Очиститель HTML .