php安全配置:php安全配置的参数来源: 发布时间:星期三, 2009年9月2日 浏览:2次 评论:0
Php已经成为当前网络中使用最多数据库的特别是在Web应用上它占据了中小型应用绝对优势这切都源于它小巧易用、它安全有效、它开放式许可、它多平台更主要是它和 3大Web语言的——PHP完美结合但不幸是个缺省安全Php会设置不当造成灾难性后果990807a03ffzsLIh
第个重要参数是register_globals. 这个配置影响到php如何接收传递过来参数说白了register_globals意思就是注册为全局变量所以当该参数为值On时候传递过来值会被直接注册为全 局变量直接使用而当该参数值为Off时候我们需要到从特定里去得到它.操作 修改php.ini文件设置register_globals=off 当 register_globals 打开以后各种变量都被注入代码例如来自 HTML 表单请求变量再加上 PHP 在使用变量的前是无需进行化这就使得更容易写出不安全代码这是个很艰难抉择但 PHP 社区还是决定默认关闭此选项当打开时人们使用变量时确实不知道变量是哪里来只能想当然但是 register_globals 关闭改变了这种代码内部变量和客户端发送变量混杂在起糟糕情况 当 magic_quotes_gpc=off 写入数据库串未经过任何过滤处理从数据库读出串也未作任何处理对于未经处理单引号在写入数据库时会使sql语句发生当magic_quotes_gpc=on 写入数据库串未经过任何处理从数据库读出串未作任何处理magic_quotes_gpc=on 将单引号转换为’转义使sql语句成功执行但’并未作为数据入数据库数据库保存是snow”’’sun而并不是我们想象snow”’’sun 修改php.ini文件设置register_globals=off php display_errors参数就是帮助开发者定位和确定这些容易使提供这些信息被恶意攻击者采集信息 操作 修改php.ini文件设置display_errors =Off php安全模式是个非常重要内嵌安全机制能够控制些php中比如system等同时把很多文件操作进行了权限控制也不允许对某些关键文件访问比如/etc/passwd但是默认 php.ini是没有打开安全模式我们把它打开safe_mode = _disibledevent=> open_basedir选项能够控制PHP脚本只能访问指定目录这样能够避免PHP脚本访问不应该访问文件定程度上限制了webshell跨站攻击 操作 修改php.ini文件设置open_basedir=网站WebSite路径 变量disable_functions能过滤些危害性很大systemexec等 操作 推荐过滤如下 disable_functions = phpinfopassthruexecsystemchrootscandirchgrpchownshell_execproc_openproc_get_statusini_alterini_alterini_restoredlpfsockopenopenlogsyslogreadlinksymlinkpopepassthrustream__server 但需要设置另两个参数safe_mode =on;safe_mode_gid =on 禁用Com组件Windows平台下PHP脚本平台存在个安全漏洞使得PHP设置即使在安全模式下(safe_mode)仍旧允许攻击者使用COM来创建系统组件来执行任意命令漏洞出现原因是由于在安全模式下PHP平台虽然system;pathru被禁止但是com.allow_dcom设置依旧是为true以至于攻击者可以使用COM创建系统组件对象来运行系统命令 操作 1、卸载wscript.shell对象 在cmd下运行:regsvr32 WSHom.Ocx /u 2、卸载FSO对象 在cmd下运行:regsvr32.exe scrrun.dll /u 3、卸载stream对象 在cmd下运行: regsvr32 /s /u “C:Program FilesCommon Filesadomsado15.dll” 恢复话去掉/u就行了 如Wscript.Shell就用在regsvr32 WSHom.Ocx就行了 0
相关文章读者评论发表评论 |