2012-02-24 37 views
0

假设我希望我的用户允许在我的页面上创建PHP脚本,并将这些页面保存在目录中。我应该禁用哪些功能才不会被黑客入侵?或者我该怎么做?首先,我不会允许人们通过PHP文件上传文件(不知道如何去做),还有什么?如果允许用户输入PHP,应禁用哪些功能?

+0

只要您保存这些网页并且不打算在服务器上运行它们,您就可以允许您的用户创建任何PHP脚本:-) – jgivoni 2012-02-24 23:13:40

回答

-1
  • 文件处理(fopenfclosefwrite等)
  • 文件浏览(opendirreaddir等)
  • 执行(execshell等)
  • 远程文件访问( allow_url_include php.ini指令)

其他任何你可能看到的是harmf UL认证。将自己置于“破解者”的位置,你会用什么方式来查看你的系统或环境,并且拒绝任何你认为有害的东西。

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,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,po six_setuid,posix_uname,proc_close,proc_get_status,proc_nice,proc_open,proc_terminate,了shell_exec,系统日志,系统,xmlrpc_entity_decode”

3

在这种情况下,我不能让他们执行PHP文件,即使它可能RO禁用数以千计的功能运行它们。

对于此它更好地允许用户编写。解析器会读取它并相应地执行它。大多数编程语言功能都可以在中实现。看看是如何做到的。有循环条件语句

1

你不能让PHP成黑名单各个功能安全的语言 - 也有可以被恶意使用太多的。

+0

那么我应该怎么做? – 2012-02-24 19:28:47

+0

不要让用户上传可执行代码。备份,重新评估你想要做的事情,并以不同的方式去做。 – duskwuff 2012-02-24 19:42:59

0

我会以相反的方式去做。我会为用户提供他们可以使用的PHP子集。

然后,您只需验证它们发送的内容是否包含在该安全列表中。

另外,您可以创建自己的函数来替换某些危险的函数。