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