1.文件系统安全
php如果具有root权限,且在脚本中允许用户删除文件,那么用户提交数据,不进行过滤,就非常有可能删除系统文件
<?php// 从用户目录中删除指定的文件$urname = $_post[‘ur_submitted_name’];$urfile = $_post[‘ur_submitted_filename’];$homedir = “/home/$urname”;unlink (“$homedir/$urfile”);echo “the file has been deleted!”;?>
上面的代码,假设用户提交的$urfile分析报告格式值是 ../etc/,那么/e年会tc目录就会被删除
防范文件系统攻击,策略如下:
只给php有限的权限
用户提交上来的变量要监测和过滤,不能包含文件路径等特殊字符
尽量避免使用php操作文件(删除),如果有这方目标市场分析面的需求,那用户可删除文件也必须是系统生成的随机名称,不可被用户控制
2.数据库安全
数据库安全主要防范的是sql injection,即sql注入攻击,提升数据库安全的策略如下:
不用使用root帐号或者数据库所有者帐号连接数据库,连接数据库限定连接用户的ip
使用php的pdo扩展,有效防止sql注入,除了安全方面的优势,php的pdo扩展在性能方面有有很大优势
请参看
http://php.net/manual/en/pdo.prepared-statements.php
对一些敏感信息进行加密,常见的比如对密码进行加密
3.用户数据过滤
对用户数据过滤,可以防范xss和csrf攻击
使用白名单(用户输入是固定模式)的方式
比如用户名只能使用数字字母,那么可以使用函数ctype_alnum判断
对用户输入使用函数 htmlentities或者htmlspecialchars进行处理,输入关于母爱的url不允许传入非http协议
用户身份验证使用令牌 token(csrf)
html purifier 是开源的防范xss攻击的有效解决方案,
4.其他安全策略
线上环境关闭错误报告(error_reporting,dislay_erros,缓刑思想汇报可在php.ini中配置error_log路径,记录错误信息,这样有助于发现可能的用户攻击)
register globals,弃用(移除)的特性,不要使用
魔术引号特性,不要开启,在php-5.4中已经被移除
尽量使用php的最新版本,最新版本修复了已知的很多安全漏洞和bug
代码中严格遵守上述策略,基本能保证代码不会有太多的安全漏洞,能防范常见攻击。
本文发布于:2023-04-06 00:11:58,感谢您对本站的认可!
本文链接:https://www.wtabcd.cn/fanwen/zuowen/54058327ae8460b39fda13ac91651b96.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文word下载地址:php性能优化及安全策略(附xss攻击安全防范措施).doc
本文 PDF 下载地址:php性能优化及安全策略(附xss攻击安全防范措施).pdf
留言与评论(共有 0 条评论) |