Безопасность PHP: получение файл PHP с сервера, необработанного

Если вам нужен один вкладыш (но, вероятно, очень неэффективный), вот он:

val r1 = visitors_A.filter(va => visitors_B.exists(vb => vb.start == va.start))

Вы можете получить немного большую скорость, если сначала конвертировать visitors_B в Map (логически карта start -> visitor):

val vbm = visitors_B.map(vb => (vb.start, vb)).toMap
val r2 = visitors_A.filter(va => vbm.contains(va.start))

Редактировать

На самом деле, поскольку значения в Map вообще не используются, вместо них можно использовать Set который будет немного более эффективным, чем Map:

val vbs = visitors_B.map(vb => vb.start).toSet
val r3 = visitors_A.filter(va => vbs.contains(va.start))
13
задан andyk 31 January 2009 в 09:02
поделиться

5 ответов

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

Если Вы говорите о своем собственном сервере (т.е. что у Вас самих есть доступ к), то существуют простые сценарии, что можно поставить сервер, которые позволяют Вам указывать путь к любому файлу на сервере и возвращать его как простой текст. Однако Вы НИКОГДА не хотите поместить такой сценарий в рабочий сервер по упомянутым выше причинам.

16
ответ дан 1 December 2019 в 21:12
поделиться

Вообще говоря, Вы не можете получить доступ к удаленному исходному коду. Модуль PHP должен был бы быть отключен, чтобы это произошло.

Но как мысленный эксперимент, как это могло бы произойти?

При не принятии во внимание оптового использования, которое получает доступ ко всей файловой системе, вообразите, была ли дыра в системе безопасности в приложении, которое позволило Вам вставлять строку в .htaccess файл. Учитывая, что .htaccess перезаписываемое процессом httpd полезно для приложений как Wordpress, это не слишком диковинная возможность.

Если Вы добавили это:

php_value engine off

Исходные файлы теперь становятся загружаемыми!

6
ответ дан 1 December 2019 в 21:12
поделиться

Если файл будет подаваться от веб-сервера, который имеет php включенную интерпретацию (через HTTP) затем, то это будет обработано. Единственным путем Вы получили бы необработанный код, то, если PHP был отключен так или иначе.

1
ответ дан 1 December 2019 в 21:12
поделиться

Возможно, если сервер не хорошо настроен, что файлы PHP не являются дескрипторами как таковыми.

Некоторые примеры:

  • Некоторые серверы настроены для показа выделенного исходного кода файла PHP при необходимости как .phps вместо этого.
  • Некоторое использование разработчиков .inc для файлов, которые предназначаются, чтобы быть включенными с помощью include или require. Если сервер не будет настроен для обработки их как PHP также, то они будут поставлены как простой текст, когда их будут требовать непосредственно.

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

4
ответ дан 1 December 2019 в 21:12
поделиться

Я встретился с неправильно сконфигурированным веб-сервером в прошлом, которое имело один виртуальный хост, правильно устанавливают к серверу файлы PHP через интерпретатор PHP. Был второй виртуальный хост, указывающий на тот же каталог, но не имел php включенным. Это означало вещи как 'config.php' для нескольких приложений, где видимый как простой текст. Поскольку все знают, что типичный config.php имеет учетные данные автора базы данных и другие вещи, которые не должны быть известны.

Так, очень важно понять Вашу установку веб-сервера и удостовериться, что Вы не делаете чего-то глупого.

0
ответ дан 1 December 2019 в 21:12
поделиться
Другие вопросы по тегам:

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