Я полагаю, что ваш «эксперт по безопасности» увидел, что вы использовали необработанные данные $_POST
и использовали функцию mail()
, и он испугался, но не остановился, чтобы действительно проверить, насколько плохи дела.
У него есть точка в том, что с использованием $_POST
без какой-либо проверки на нем почти всегда рецепт взлома, но на самом деле в этом конкретном случае я не думаю, что это слишком плохо, потому что вы единственный получатель (поэтому он не будет использоваться для спама, о чем главное беспокоиться в этих случаях), а также потому, что тело является простым текстом (поэтому хакер не может отправить вам какие-либо неприятные сценарии или вложения).
Без какой-либо проверки вы можете получить некоторые действительно странные электронные письма в результате того, что хакеры пытаются найти способ защитить вашу защиту, но не слишком много.
Функциональность PHP mail()
- это хорошо известная мягкая цель для хакеров, потому что там очень много небезопасного кода, который ее использует. Однако реальная опасность с mail()
имеет тенденцию быть, если вы используете параметр headers
(т. Е. Устанавливать такие вещи, как адрес отправителя и т. Д.), Которые вы не использовали. Поскольку вы не используете headers
, риски намного ниже и в основном ограничены тем, что вы легко можете отправить вам сообщение.
Если вы все еще беспокоитесь о безопасности функции mail()
, лучшим решением является использование библиотеки, например phpMailer.
Если честно, мой совет, когда кто-либо хочет использовать функцию PHP mail()
, всегда должен использовать phpMailer или Swiftmailer. И дело даже не в безопасности; даже для простых случаев, они могут сделать ваш код намного легче читать и поддерживать.
«Безопасность» - большой предмет, но в качестве начала ** не доверяйте пользовательскому вводу **, даже не предполагайте, что все они представлены. Простой запрос POST без параметров приведет к тому, что ваш скрипт будет жаловаться (например, '$ _POST' не имеет индекса" name "). – Passerby
Что именно они сказали, так «безумно небезопасно»? –
уверен, что если они найдут подходящего эксперта по безопасности, они также смогут вам посоветовать, как исправить упомянутые безумные незащищенные части скрипта. – Martin