За последние 24 часа нас посетили 21656 программистов и 1018 роботов. Сейчас ищут 714 программистов ...

Запуск сторонних php скриптов на сервере!

Тема в разделе "Прочие вопросы по PHP", создана пользователем Awilum, 12 сен 2012.

  1. Awilum

    Awilum Активный пользователь

    С нами с:
    15 ноя 2009
    Сообщения:
    325
    Симпатии:
    26
    Адрес:
    Earth
    вот такой вот пример: http://ignite.io
    насколько это безопасно сделать на своем сервере? ведь это php сохраняется и запускается

    или есть какой то способ безопасно сохранять/редактировать и запускать публично доступные php скрипты, как у них ?
     
  2. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.072
    Симпатии:
    1.237
    Адрес:
    там-сям
    Чисто теоретически если есть уверенность в правильной настройке среды выполнения (chroot), плюс запретить выполение некоторых особо вредных функций, то можно такое безобразие допустить.

    НО ЗАЧЕМ?
     
  3. Awilum

    Awilum Активный пользователь

    С нами с:
    15 ноя 2009
    Сообщения:
    325
    Симпатии:
    26
    Адрес:
    Earth
    Хочу открыть подобный редактор на своем сервере, вот и беспокоит этот вопрос. так как в php можно написать все что угодно и запустить потом.
     
  4. Dmitriy A. Arteshuk

    Dmitriy A. Arteshuk Активный пользователь

    С нами с:
    19 янв 2012
    Сообщения:
    2.445
    Симпатии:
    66
    Адрес:
    Зеленоград
    интересовался подобным вопросом месяца 3 назад...решения так и не нашел :(
     
  5. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.553
    Симпатии:
    631
    Да безопасно это. Вот вытащил их php.ini, делайте такой же:
    Код (Text):
    1. [PHP]engine = On
    2. short_open_tag = On
    3. asp_tags = Off
    4. precision = 14
    5. y2k_compliance = On
    6. output_buffering = 4096
    7. zlib.output_compression = Off
    8. implicit_flush = Off
    9. unserialize_callback_func =
    10. serialize_precision = 17
    11. allow_call_time_pass_reference = Off
    12. safe_mode = Off
    13. safe_mode_gid = Off
    14. safe_mode_include_dir =
    15. safe_mode_exec_dir =
    16. safe_mode_allowed_env_vars = PHP_
    17. safe_mode_protected_env_vars = LD_LIBRARY_PATH
    18. disable_functions = pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,passthru,exec,system,
    19. disable_classes =
    20. expose_php = On
    21. max_execution_time = 30
    22. max_input_time = 60
    23. memory_limit = 128M
    24. error_reporting = E_ALL & ~E_DEPRECATED
    25. display_errors = On
    26. display_startup_errors = Off
    27. log_errors = On
    28. log_errors_max_len = 1024
    29. ignore_repeated_errors = Off
    30. ignore_repeated_source = Off
    31. report_memleaks = On
    32. track_errors = Off
    33. html_errors = Off
    34. variables_order = "GPCS"
    35. request_order = "GP"
    36. register_globals = Off
    37. register_long_arrays = Off
    38. register_argc_argv = Off
    39. auto_globals_jit = On
    40. post_max_size = 8M
    41. magic_quotes_gpc = Off
    42. magic_quotes_runtime = Off
    43. magic_quotes_sybase = Off
    44. auto_prepend_file =
    45. auto_append_file =
    46. default_mimetype = "text/html"
    47. doc_root =
    48. user_dir =
    49. enable_dl = Off
    50. file_uploads = On
    51. upload_max_filesize = 2M
    52. max_file_uploads = 20
    53. allow_url_fopen = On
    54. allow_url_include = Off
    55. default_socket_timeout = 60
    56. [Date]
    57. [filter]
    58. [iconv]
    59. [intl]
    60. [sqlite]
    61. [sqlite3]
    62. [Pcre]
    63. [Pdo]
    64. [Pdo_mysql]
    65. pdo_mysql.cache_size = 2000
    66. pdo_mysql.default_socket=
    67. [Phar]
    68. [Syslog]
    69. define_syslog_variables = Off
    70. [mail function]
    71. SMTP = localhost
    72. smtp_port = 25
    73. mail.add_x_header = On
    74. [SQL]
    75. sql.safe_mode = Off
    76. [ODBC]
    77. odbc.allow_persistent = On
    78. odbc.check_persistent = On
    79. odbc.max_persistent = -1
    80. odbc.max_links = -1
    81. odbc.defaultlrl = 4096
    82. odbc.defaultbinmode = 1
    83. [Interbase]
    84. ibase.allow_persistent = 1
    85. ibase.max_persistent = -1
    86. ibase.max_links = -1
    87. ibase.timestampformat = "%Y-%m-%d %H:%M:%S"
    88. ibase.dateformat = "%Y-%m-%d"
    89. ibase.timeformat = "%H:%M:%S"
    90. [MySQL]
    91. mysql.allow_local_infile = On
    92. mysql.allow_persistent = On
    93. mysql.cache_size = 2000
    94. mysql.max_persistent = -1
    95. mysql.max_links = -1
    96. mysql.default_port =
    97. mysql.default_socket =
    98. mysql.default_host =
    99. mysql.default_user =
    100. mysql.default_password =
    101. mysql.connect_timeout = 60
    102. mysql.trace_mode = Off
    103. [MySQLi]
    104. mysqli.max_persistent = -1
    105. mysqli.allow_persistent = On
    106. mysqli.max_links = -1
    107. mysqli.cache_size = 2000
    108. mysqli.default_port = 3306
    109. mysqli.default_socket =
    110. mysqli.default_host =
    111. mysqli.default_user =
    112. mysqli.default_pw =
    113. mysqli.reconnect = Off
    114. [mysqlnd]
    115. mysqlnd.collect_statistics = On
    116. mysqlnd.collect_memory_statistics = Off
    117. [OCI8]
    118. [PostgresSQL]
    119. pgsql.allow_persistent = On
    120. pgsql.auto_reset_persistent = Off
    121. pgsql.max_persistent = -1
    122. pgsql.max_links = -1
    123. pgsql.ignore_notice = 0
    124. pgsql.log_notice = 0
    125. [Sybase-CT]
    126. sybct.allow_persistent = On
    127. sybct.max_persistent = -1
    128. sybct.max_links = -1
    129. sybct.min_server_severity = 10
    130. sybct.min_client_severity = 10
    131. [bcmath]
    132. bcmath.scale = 0
    133. [browscap]
    134. [Session]
    135. session.save_handler = files
    136. session.use_cookies = 1
    137. session.use_only_cookies = 1
    138. session.name = PHPSESSID
    139. session.auto_start = 0
    140. session.cookie_lifetime = 0
    141. session.cookie_path = /
    142. session.cookie_domain =
    143. session.cookie_httponly =
    144. session.serialize_handler = php
    145. session.gc_probability = 0
    146. session.gc_divisor = 1000
    147. session.gc_maxlifetime = 1440
    148. session.bug_compat_42 = Off
    149. session.bug_compat_warn = Off
    150. session.referer_check =
    151. session.entropy_length = 0
    152. session.cache_limiter = nocache
    153. session.cache_expire = 180
    154. session.use_trans_sid = 0
    155. session.hash_function = 0
    156. session.hash_bits_per_character = 5
    157. url_rewriter.tags = "a=href,area=href,frame=src,input=src,form=fakeentry"
    158. [MSSQL]
    159. mssql.allow_persistent = On
    160. mssql.max_persistent = -1
    161. mssql.max_links = -1
    162. mssql.min_error_severity = 10
    163. mssql.min_message_severity = 10
    164. mssql.compatability_mode = Off
    165. mssql.secure_connection = Off
    166. [Assertion]
    167. [COM]
    168. [mbstring]
    169. [gd]
    170. [exif]
    171. [Tidy]
    172. tidy.clean_output = Off
    173. [soap]
    174. soap.wsdl_cache_enabled=1
    175. soap.wsdl_cache_dir="/tmp"
    176. soap.wsdl_cache_ttl=86400
    177. soap.wsdl_cache_limit = 5
    178. [sysvshm]
    179. [ldap]
    180. ldap.max_links = -1
    181. [mcrypt]
    182. [dba]
    183. extension=mongo.so
    184. extension=gearman.so
    Добавлено спустя 15 минут 51 секунду:
    Еще функции отключаются в рун-тайме:
    Код (Text):
    1. "openFile","get_included_files", "phpinfo", "eval", "call_user_func_array", "call_user_func", "create_function", "forward_static_call_array", "forward_static_call", "func_get_arg", "func_get_args", "func_num_args", "function_exists", "get_defined_functions", "register_shutdown_function", "register_tick_function", "unregister_tick_function", "file_put_contents", "file", "ini_set", "ini_get", "mail", "setenv", "getenv", "socket_create", "socket_bind", "socket_listen", "socket_create_listen", "socket_create_pair", "socket_accept", "pcntl_fork", "exec", "passthru", "shell_exec", "system", "proc_open", "popen", "parse_ini_file", "show_source", "glob", "opendir", "readdir", "set_time_limit", "unlink", "rmdir", "mkdir", "rename", "copy", "dir", "scandir", "ftp_connect", "ftp_ssl_connect", "openlog", "syslog", "fsockopen", "define_syslog_variables", "pfsockopen", "snmp2_get", "snmp3_get", "snmp2_walk", "snmp2_real_walk", "snmp2_getnext", "snmp3_walk", "snmp3_real_walk", "snmpget", "snmpwalk", "snmpgetnext", "snmprealwalk", "snmp3_getnext", "snmpwalkoid", "ssh2_connect", "ssh2_fetch_stream", "ssh2_tunnel", "yaz_connect", "yaz_wait", "disk_free_space", "disk_total_space", "flock", "link", "tempnam", "tmpfile", "touch", "symlink", "pcntl_exec", "posix_kill", "posix_mkfifo", "posix_mknod", "fopen", "stream_socket_server", "stream_socket_client", "stream_socket_pair", "gc_disable", "ob_end_flush", "flush", "ini_get_all", "get_loaded_extensions", "ini_alter", "chmod", "chgrp", "chown", "posix_access", "posix_ctermid", "posix_errno", "posix_get_last_error", "posix_getcwd", "posix_getegid", "posix_geteuid", "posix_getgid", "posix_getgrgid", "posix_getgrnam", "posix_getgroups", "posix_getlogin", "posix_getpgid", "posix_getpgrp", "posix_getpid", "posix_getppid", "posix_getpwnam", "posix_getpwuid", "posix_getrlimit", "posix_getsid", "posix_getuid", "posix_initgroups", "posix_isatty", "posix_kill", "posix_mkfifo", "posix_mknod", "posix_setegid", "posix_seteuid", "posix_setgid", "posix_setpgid", "posix_setsid", "posix_setuid", "posix_strerror", "posix_times", "posix_ttyname", "posix_uname", "chdir", "opendir", "readdir", "debug_backtrace", "debug_print_backtrace"