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

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

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

5
задан pHp 26 March 2010 в 01:27
поделиться

8 ответов

Было бы разумно начать с использования фреймворка, такого как Drupal или CakePHP. Таким образом, вы сможете извлечь уроки из того, как они реализовали безопасность, и воспользоваться тем фактом, что это уже было сделано. Кривая обучения достаточно крутая, без необходимости использовать собственные механизмы аутентификации и т. Д.

0
ответ дан 14 December 2019 в 13:32
поделиться

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

Вот лишь пара из них:

Есть несколько способов справиться с каждым из них. Вот на что стоит обратить внимание:

1
ответ дан 14 December 2019 в 13:32
поделиться

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

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

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

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

5
ответ дан 14 December 2019 в 13:32
поделиться

возможно, два совета помогут вам получить более безопасные веб-сайты.

  • создать двух пользователей в вашей базе данных, учетную запись только для чтения, чтобы делать только выборки и подсчеты, и записать учетную запись, когда вам нужно выполнять обновления, вставки или удаления.
  • когда вам нужно вставить в базу данных или удалить, очистить входные данные, использовать подготовленные операторы mysql или утверждать значения, которые приходят по почте или получают таким образом:

     if (! Empty ($ _ GET ["integer_like_id_value"]) {{ {1}} $ integer_id_value = (int) $ _ GET ["integer_like_id_value"]; 
    } else {
     // кажется, что этот материал не является допустимым, приложение, ошибка журнала? 1}} die (); 
    } 
     
0
ответ дан 14 December 2019 в 13:32
поделиться

Когда ваш проект готов к общедоступному использованию, обычно рекомендуется установить error_reporting (0);

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

-1
ответ дан 14 December 2019 в 13:32
поделиться

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

Какая безопасность? Для паролей? Хотите что-то ограничить? Внедрение SQL? Внедрение HTML? Междоменная безопасность?

1
ответ дан 14 December 2019 в 13:32
поделиться

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

Во-первых, если вы принимаете статьи (и, вероятно, используете WYSIWYG и принимаете HTML), используйте что-нибудь для анализа содержимого и исключения вещей, которые могут сделать вас уязвимыми для XSS и т.п.

Примером является Очиститель HTML .

0
ответ дан 14 December 2019 в 13:32
поделиться
Другие вопросы по тегам:

Похожие вопросы: