Intereting Posts
выбор всех заказов за последние 30 дней и подсчет количества в день php soap envelope namespace <soap: Envelope и <SOAP-ENV: Конверт Вставить запрос на загрузку страницы, вставить дважды? get_instance () в Codeigniter: зачем назначать его переменной? Резервные SMTP-серверы с phpmailer Использование флажков ввода с базой данных Codeigniter – Записывать несколько направляющих в один файл с новой структурой каталогов PHP / MySQL: получить один путь в модели списка Adjacency Использование PHP для создания PDF-файла из простого текста и текста HTML Я не могу сохранить некоторые образы facebook на моем сервере, так как он не понимает файл Загрузите ошибку сценария php, перемещая изображение в папку Разница между «включать» и «требовать» в php Почему мой хэш-код PHP SHA256 не эквивалентен C # SHA256 Управленный хэш Перенаправление заданий PHP Создание PDF-документа с символами Unicode, хранящимися в базе данных

Вопрос безопасности PHP?

Я просто хотел знать, какие основные методы безопасности PHP я должен использовать при создании веб-страницы, которая принимает статьи?

Я довольно новичок в PHP и задаюсь вопросом, что будет держать форт до тех пор, пока я не специалист по безопасности?

Solutions Collecting From Web of "Вопрос безопасности PHP?"

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

Во-первых, вам необходимо защитить свою базу данных от атак инъекций. Для этого есть простая функция PHP: mysql_real_escape_string () обычно будет достаточным для защиты вашей базы данных от инъекции при передаче этой строки для хранения в качестве значения поля.

Оттуда вы должны быть осторожны относительно своего дисплея, так как пользователь, которому разрешено загружать HTML-код, может делать неприятные вещи другим пользователям, когда этот код будет отображаться. Если вы делаете статьи с открытым текстом, вы можете просто получить htmlspecialchars () полученный текст. (вы также, вероятно, захотите преобразовать новые строки в
теги.) Если вы используете решение для форматирования, такое как механизм Markdown, используемый на этом сайте, эти решения обычно обеспечат санацию HTML как функцию движка, но обязательно прочитайте документацию и убедитесь в этом.

О, убедитесь, что вы также проверяете переменные GET / POST, используемые для отправки статей. Это само собой разумеется, и выполненная проверка должна быть адаптирована к тому, что ваш сайт делает с его логикой.

Это широко, может быть, вам стоит попытаться немного его сузить.

Какая безопасность? Для паролей? Вы хотите ограничить некоторые вещи? SQL-инъекция? Встраивание HTML? Безопасность междоменной безопасности?

Ну, как упоминалось в других ответах, существует ряд разных фронтов, в которых ваши скрипты PHP могут быть скомпрометированы.

Вот только пара:

  • SQL-инъекция
  • Межсайтовый скриптинг

Существует несколько способов борьбы с каждым из них. Вот несколько вещей, на которые нужно обратить внимание:

  • Suhosin
  • Eval ()

Многому нужно знать, и вы должны начать, как только сможете.

Например, если вы принимаете статьи (и, вероятно, используете 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);

Это не обеспечит большей безопасности, но это затрудняет (обычно) для плохих парней найти возможные проблемы с безопасностью на вашем сайте.