假设我希望我的用户允许在我的页面上创建PHP脚本,我会将这些页面保存在目录中。我应禁用哪些功能不被黑客攻击?或者我该怎么办?
首先,我不允许人们通过PHP文件上传文件(不知道怎么做),还有什么?
答案 0 :(得分:3)
在这种情况下,我不会让他们执行PHP文件,尽管可能通过禁用数千个函数来运行它们。
对于最好允许用户编写 xml。解析器会读取它并相应地执行它。大多数编程语言功能都可以在xml中实现。了解ant如何做到这一点。有循环,条件语句等。
答案 1 :(得分:1)
你不能通过将单个函数列入黑名单来使PHP成为一种安全的语言 - 有太多可以恶意使用的。
答案 2 :(得分:0)
我没有在这个堆栈交换网站中重新输入所有有用的内容,而是为您提供了一个链接先生:https://security.stackexchange.com/questions/1382/disable-insecure-dangerous-php-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,通路,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,系统日志,系统,xmlrpc_entity_decode”
答案 3 :(得分:0)
我会反过来做。我会向用户提供他们可以使用的PHP子集。
然后,您只需要验证他们发送的内容是否包含在该安全列表中。
此外,您可以创建自己的功能来替换一些危险的功能。
答案 4 :(得分:-1)
fopen
,fclose
,fwrite
等。)opendir
,readdir
等)exec
,shell
等)allow_url_include
php.ini指令)其他任何你可能认为有害的东西。把自己置于“破解者”的位置,用什么方法来查看你的系统或环境,并禁止任何你认为有害的东西。