2012-02-24 4 views
0

Предположим, что я хочу, чтобы мои пользователи разрешали создавать PHP-скрипты на моей странице, и я бы сохранил эти страницы в каталоге. Какие функции я должен отключить, чтобы не быть взломанными? Или что мне делать?Какие функции следует отключить, если я разрешу пользователям вводить PHP?

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

+0

Вы можете разрешить пользователям создавать любой PHP-скрипт, пока вы просто сохраняете эти страницы и не планируете когда-либо запускать их на своем сервере :-) – jgivoni

ответ

-1
  • обработки (fopen, fclose, fwrite и др.)
  • просмотра файлов (opendir, readdir и т.д.)
  • выполнение файла (exec, shell и т.д.)
  • Удаленный доступ к файлам (allow_url_include php.ini директива)

И что-нибудь еще, что вы можете видеть как являющееся вредоносным ул. поставьте себя на место «Cracker» и какие способы вы будете использовать, чтобы увидеть свою систему или окружающую среду и запретить все, что вы считаете вредным.

0

Вместо перепечатывать все полезные вещи в этом собрата stackexchange сайт, я предоставить вам ссылку сэр: https://security.stackexchange.com/questions/1382/disable-insecure-dangerous-php-functions

И несколько функций:

«apache_child_terminate, apache_setenv, define_syslog_variables, escapeshellarg, EscapeShellCmd, Eval, EXEC, ∥f∥p, fput, ftp_connect, ftp_exec, ftp_get, ftp_login, ftp_nb_fput, ftp_put, ftp_raw, ftp_rawlist, highlight_file, ini_alter, ini_get_all, ini_restore, inject_code, mysql_pconnect, openlog, PassThru, php_uname, phpAds_remoteInfo, phpAds_XmlRpc, phpAds_xmlrpcDecode, phpAds_xmlrpcEncode, popen, posix_getpwuid, posix_kill, posix_mkfifo, posix_setpgid, posix_setsid, posix_setuid, po six_setuid, posix_uname, proc_close, proc_get_status, proc_nice, proc_open, proc_terminate, shell_exec, системный журнал, система, xmlrpc_entity_decode»

3

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

Для этого Его лучше разрешить пользователю писать. Анализатор прочитал бы его и выполнил бы соответственно. Большинство функций языка программирования могут быть реализованы в . Посмотрите, как это делает . Существует петли, условного оператора т.д.

1

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

+0

Тогда что мне делать? –

+0

Не позволяйте пользователям загружать исполняемый код.Сделайте резервную копию, переоцените то, что вы пытаетесь сделать, и пойдите по-другому. – duskwuff

0

Я бы сделал это наоборот. Я бы предоставил пользователям подмножество PHP, которое они могут использовать.

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

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

Смежные вопросы