假设我希望我的用户允许在我的页面上创建PHP脚本,并将这些页面保存在目录中。我应该禁用哪些功能才不会被黑客入侵?或者我该怎么做?首先,我不会允许人们通过PHP文件上传文件(不知道如何去做),还有什么?如果允许用户输入PHP,应禁用哪些功能?
回答
- 文件处理(
fopen
,fclose
,fwrite
等) - 文件浏览(
opendir
,readdir
等) - 执行(
exec
,shell
等) - 远程文件访问(
allow_url_include
php.ini指令)
其他任何你可能看到的是harmf UL认证。将自己置于“破解者”的位置,你会用什么方式来查看你的系统或环境,并且拒绝任何你认为有害的东西。
而不是重新键入的所有有用的东西,在这个家伙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”
你不能让PHP成黑名单各个功能安全的语言 - 也有可以被恶意使用太多的。
那么我应该怎么做? – 2012-02-24 19:28:47
不要让用户上传可执行代码。备份,重新评估你想要做的事情,并以不同的方式去做。 – duskwuff 2012-02-24 19:42:59
我会以相反的方式去做。我会为用户提供他们可以使用的PHP子集。
然后,您只需验证它们发送的内容是否包含在该安全列表中。
另外,您可以创建自己的函数来替换某些危险的函数。
- 1. 如何允许用户输入java
- 2. R`scan`功能的哪一部分允许数据输入?
- 3. PHP地穴功能的用户输入
- 4. ComboBox不允许用户输入
- 5. 允许用户选择输入
- 6. 允许用户只输入文本?
- 7. 隐藏用户输入,只允许某些字符
- 8. 允许用户启用/禁用选项
- 9. 如何查看哪些Facebook用户“允许”我的应用程序?
- 10. 哪些许可证禁止用户删除“许可证声明”?
- 11. 用户输入的功能
- 12. Node.js W/Socket.io - 切换用户功能(允许和防止写入)
- 13. dojo的查询功能允许哪些字符?
- 14. <%# ... %>标签内容允许哪些功能?
- 15. 防止用户输入过大PHP“允许的内存大小”
- 16. 用户输入,不允许相同的输入两次
- 17. iPhone应用程序名称中允许使用哪些字符
- 18. Facebook API允许您提供Facebook用户的哪些信息?
- 19. 如何:允许用户为功能选择值
- 20. 用户输入提示功能/管道如果声明 - Bash
- 21. 输入标签内的HTML名称属性允许使用哪些字符?
- 22. 只允许某些用户编辑ASPxGridView
- 23. 使用过期Cookies以允许用户在Web应用程序上使用某些有时限的功能
- 24. 如何导入`babel-polyfill`允许使用ES6功能?
- 25. 如何保护允许用户插入JavaScript的应用程序?
- 26. CAAnimation - 禁用用户输入
- 27. 只允许ipad应用程序用户访问某些文件
- 28. 功能允许用户输入,如果没有给出输入,滚动5个骰子(应该是模仿骰子滚动)
- 29. 如何在单击时禁用点击功能以允许点击表单文本输入?
- 30. 如何不允许用户输入数字的文本框
只要您保存这些网页并且不打算在服务器上运行它们,您就可以允许您的用户创建任何PHP脚本:-) – jgivoni 2012-02-24 23:13:40