Я пытаюсь максимально обезопасить свой сервер, не ограничивая свои возможности, поэтому в качестве первого шага я предотвратил опасные функции с помощью php.
disable_functions = "apache_child_terminate, apache_setenv, define_syslog_variables, escapeshellarg, escapeshellcmd, eval, exec, fp, 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, posix_setuid, posix_uname, proc_close, proc_get_status, proc_nice, proc_open, proc_terminate, shell_exec, syslog, system, xmlrpc_entity_decode"
но я все еще борюсь с перемещениями по каталогам, кажется, я не могу их ограничить, используя сценарий оболочки, например c99, я могу перемещаться из моего / home / dir в любое место на диске.
как я могу ограничить это раз и навсегда?
Я пытаюсь максимально обезопасить свой сервер, не ограничивая свои возможности
. . . Что ж, теперь это будет не очень безопасно, не так ли?
Вы не можете обезопасить систему, нанеся маленькие кусочки жевательной резинки на отверстия, на которые вы наткнулись. Вы неправильно смотрите на безопасность, если считаете, что это правильный подход.
подобно Майкл Хэмптон сказал, вам нужно начать с написания Код безопасности.
но я все еще борюсь с перемещениями по каталогам, кажется, я не могу ограничить их ... как я могу ограничить их раз и навсегда?
chroot
веб-сервер. Это единственное решение.
Любые другие шаги, которые вы предпринимаете, - это жевательная резинка, закрывающая дыру. Если вы хотите убедиться, что злоумышленники не смогут добраться до чего-либо конфиденциального, заприте их в коробке, в которой нет ничего важного, и не выпускайте их наружу.