我正在尝试尽可能地保护我的服务器,而不会限制我的选项,因此作为第一步,我阻止了 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 这样的 shell 脚本,我可以从我的 /home/dir 移动到磁盘上的任何位置。
我怎样才能一劳永逸地限制它?
答案1
我正在尝试尽可能地保护我的服务器,同时不限制我的选择
……现在这不太安全,不是吗?
你不能通过把口香糖碎片塞到你发现的漏洞上来保护系统。如果你认为这是正确的方法,那么你看待安全性的方式就错了。
就像迈克尔·汉普顿说,你需要先写安全代码。
但是我仍在与目录旅行作斗争,我似乎无法限制它......我怎样才能一劳永逸地限制它?
chroot
网络服务器。这是唯一的解决方案。
您采取的任何其他措施都是在用口香糖堵漏洞 - 如果您想确保恶意用户无法获取任何敏感信息,请将他们锁在一个不包含任何敏感信息的盒子里,不要让他们出去。