Подтвердить что ты не робот

Насколько безопасен PHP?

Я немного новичок в PHP-кодировании, и я знаю, что злоумышленники могут взломать веб-сайт, если вы не дезактивировали свой PHP-код. Мне интересно, нужна ли им коробка ввода данных (например, для файлов или полей ввода/пароля)?.

У команды вроде include (header.php) также нужна какая-то защита или они врожденно безопасны?

4b9b3361

Ответ 1

Не доверяйте пользователю.

include "a/literal/file.php";

вполне безопасен

include $someFile;

означает, что вы хотите подумать о том, как устанавливается $someFile. Если вы используете какие-либо данные, предоставленные вам пользователем для установки значения $someFile, вам лучше дезинфицировать его.

Ответ 2

Как и любой другой язык, PHP-код так же безопасен, как программист пишет его.

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

Найдите книгу, которая охватывает безопасное кодирование PHP.

Ответ 3

Процитировать RSnake с сообщения sla.ckers.org еще в 2006 году:

Я подумал, что интересно, что Стефан Эссер ушел из команды реагирования на инциденты с PHP. Не начинать религиозную войну в советах, но интересно, что основатель команды реагирования на безопасность PHP испытывает недостаток в безопасности в PHP и, как результат, уходит. На данный момент его сайт недоступен (поток трафика?): [Blog.php-security.org] Итак, вот вырезание и вставка кеша:

Суббота, 9 декабря 2006 г.

     

Вчера вечером я, наконец, ушел из команды PHP Security Response Team, которая изначально была моей идеей несколько лет назад.

     

Причин для этого много, но наиболее важным является то, что я понял, что любая попытка улучшить безопасность PHP изнутри бесполезна. Группа PHP прыгнет в вашу лодку, как только вы попытаетесь обвинить проблемы безопасности PHP на пользователя, но в тот момент, когда вы критикуете безопасность самого PHP, вы становитесь персоной non grata. Я перестал считать, что меня назвали аморальным предателем для раскрытия дыр в безопасности на PHP или для разработки Сухозина.

     

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

     

Отправлено Stefan Esser в PHP, Безопасность в 10:58

Ну, страшно, как это звучит, я очень рад наконец получить "реальную сделку" по безопасности PHP. Я всегда был немного насторожен, и будет интересно посмотреть, что должен сказать Стефан.

источник: http://sla.ckers.org/forum/read.php?2,3976

Что хорошо представляет проект Hardened PHP, Suhosin http://www.hardened-php.net/suhosin/ и проект Esser Month of PHP Bugs <а2 >

Ответ 4

PHP такой же безопасный, как и все. Но не по умолчанию, он опирается на навыки программиста. В отличие от .NET, который по умолчанию помогает в безопасности.

Включая безопасны, просто будьте осторожны, если пути создаются с помощью пучки.

Ниже приведена безвредность (в зависимости от кода в myfile.php)

include("mypath/myfile.php");

Ответ 5

Согласитесь со всеми здесь - PHP на самом деле не более или менее безопасен сам по себе, чем любой другой язык.

Однако вы должны внимательно изучить ваш файл php.ini. Вероятно, вам следует узнать обо всех директивах. Это - то, где многие люди делают ошибки на ранней стадии.

Ответ 6

Что касается ящиков ввода данных, нужно быть внимательным к атакам SQL-переполнения, переполнениям, неправильным символам и т.д. Отметьте такие функции, как filter_var(), mysql_real_escape_string(), pg_escape_string() для стартеров.

Ответ 7

Ваш вопрос довольно широкий и общий, но для решения конкретной задачи, которую вы сделали:

include (header.php);

относительно безопасен, но

include ($header);

потенциально опасное отверстие безопасности в зависимости от того, как $header было назначено, и если оно было подвергнуто санитарной обработке.

Ответ 8

Чтобы ответить на вопрос конкретно, PHP как язык очень безопасен. Для самого языка рекомендуется использовать новейшую стабильную сборку для обеспечения безопасности на основе языка. Поддерживающие php - это те, которые создают и исправляют ошибки;)