郑州信息科技中专职业学院中专部

不仅仅统招学历哟

  • 热门专业!
  • 大学校园!
  • 就业保障!
  • 拿学历又能高薪就业,谁能不爱!
了解详情>
郑州北大青鸟翔天信鸽参加“安心学习·放心就业”公约签约仪式

让每一个家庭“安心”、“放心”

  • 教学为本
  • 师爱为魂
  • 安心学习
  • 放心就业
了解详情>
北大青鸟20周年庆典与总部年会郑州翔天信鸽荣获7项荣誉

深耕细作IT职业教育15载

  • 青鸟之星教学质量大奖
  • 卓越风云人物
  • 北大青鸟中心理事会成员
  • 七项荣耀载誉而行!
了解详情>
郑州北大青鸟学员喜获全国IT精英挑战赛冠军

我们教学怎么样

  • 实力见证
  • 网络组一等奖
  • 网络组二等奖
  • 软件组四等奖
  • 200家校区脱颖而出!
了解更多>
北大青鸟荣获315重承诺守信用放心品牌

北大青鸟职业IT20周年

  • 重承诺
  • 守信用
  • 放心品牌
  • 放心学习
  • 靠靠谱谱好就业!
了解更多>
学IT好工作高薪就业

我命由我不由天

  • 学个性的技术
  • 做爱做的事
  • 挣满意的钱
  • 衣食无忧
  • 选择宽且高大尚!
了解更多>
郑州北大青鸟IT培训办学14年

我们靠不靠谱

  • 14年办学
  • 14年磨练
  • 14年成长
  • 14年探索
  • 只为让每个学员成材!
了解更多>
郑州北大青鸟IT培训

不打工也牛掰

  • 好工作
  • 好环境
  • 高薪资
  • 好课程
  • 支持你成为有“钱”人!
了解更多>

学IT就读北大青鸟

  • 好工作
  • 好未来
  • 好老师
  • 好课程
  • 支持你成为受人尊敬的人!
了解更多>
php安全代码小总结
作者:北大青鸟 添加时间:06-19 浏览次数:0

 一,漏洞篇

-----------------------------------------------
[1].Sql-Injection
留意:cookie及x-forward-for,宽字节,报错注射等
挖掘漏洞参考
变量
$_GET[""],$_POST[""],$_COOKIE[""], $SERVER[""]
数据库操作函数
mysql_query()
数字型注入防范:
1.is_numeric() ctype_digit() intval()
2.str_length()确定长度
字符型注入防范:
1.mysql_real_escape_string()
2.数据库查询语句前加@防爆错
3.str_length()确定长度
-----------------------------------------------
[2].Command-Execution
函数:
system(),passthru(),popen(),exec()
数据库操作函数:
exec,system,popen,passthru,proc_open,shell_exec
执行命令管道符 % | >
测试如0 | dir c:
|| 双竖线的作用,前面语句执行错误则执行后面语句
如xx"+||+whoami+||+echo
-----------------------------------------------
[3].File-Inclusion
函数:
include(),require(),include_once(),require_once()
远程文件包含漏洞要求
allow_url_fopen()  allow_url_include()  file_get_contents()
绕过:zlib://和ogg://
5.2.0之后版本
data://text/plain;base64,PD9waHAgcGhwaW5mbygpOz8+  //
@eval(file_get_contents('php://input'));  //POST phpinfo();
配合%00截断,新版本自动转义\0
-----------------------------------------------
[4].CSRF
CSRF防范策略
1>验证http-referer字段
安全性低,易被伪造
2>在请求地址中添加token并验证
token可在用户登录后存放在session中,每次请求时将token从session中取出,去请求的token对比以防范CSRF
GET方式:http://url/?=token

如果一个网站接受请求地方比较多,则在每次页面加载时遍历整个dom树,在dom中每个a和form标签后加入token
但在动态页面加载后产生的html代码,则需要以硬编码的形式手工添加
这种方式安全性弱点在于,如在论坛等交互比较频繁的地方hacker可构造环境盗取token并进而构造csrf攻击
故手工关闭referer
3>在HTTP头中自定义属性并进行验证。通过XMLHttpRequest类。
通常用于Ajax方法对页面局部的异步刷新
但适应性一般,对已有的网站架构局限性较大
-----------------------------------------------
[5].XSS(Cross Site Script)
反射型与存储型
控制$_GET,$_POST,$_COOKIE 各种传入的变量
使用htmlspecialchars()函数进行基础过滤
结合CSRF实现自动化利用
-----------------------------------------------
[6].File_Upload
函数:move_uploaded_file()
变量:$_FILES
php文件上传利用form表单进行文件上传时必须为post使用multipart/form-data才能完整的传递文件数据
php利用$_FILES系统函数的相关参数与函数move_upload_file函数来实例把由$_FILES全局变量生成的临时文件移动到指定目录完成文件的上传
$_FILES['files']['name']客户端文件的原名称
$_FILES['files']['type']文件的MIME类型
$_FILES['files']['size']已上传文件的大小
$_FILES['files']['tmp_name']储存的临时文件名,一般为系统默认
$_FILES['files']['error']该文件上传到相关的错误代码
防范方式:
1>判断MIME TYPE文件类型如$_FILES['files']['type']=="image/jpeg",判断文件大小,如$_FILES['files']['size']<10000 && $_FILES['files']['size']>100
2>指定上传文件名,如依赖时间生成hash(time).jpg等方式
3>根据文件后缀名判断文件
如file_ext=substr($filename,$strrpos($filename,'.')+1);
注意是否可能有双扩展名,二次上传突破等逻辑问题
4>服务器尝试渲染文件等方式判断是否为图片
5>不依赖于客户端js脚本限制上传文件类型
6>白名单规则
apache服务器常见上传安全问题
1>配合.htaccess利用上传
AllOverride ALL 允许子规则覆盖父规则
.htaccess添加AddType Application/x-httpd-php .jpg
2>文件名解析漏洞
*.php.123
在.htaccess添加AddHandler php5-script .php,文件名中包含php扩展名可以php脚本执行,如x.php.jpg
.php3 .php4扩展名

二,配置篇
1>关注漏洞信息,及时更新版本
2>php.ini httpd.conf .htaccess文件配置
    1)safe_mode相关配置
    2)register_globals关闭
    3)open_basedir配置,防范目录遍历
    4)allow_url_fopen关闭
    5)disable_functions配置
    6)magic_quotes_gpc打开
    7)error_reporting=E_ALL & ~E_NOTICE
    8)display_errors=Off避免攻击者获取更多信息
    9)expose_php=Off隐藏版本信息
3>最小化服务器其他账户权限
4>第三方安全加固软件安装
5>调用第三方安全防护文件,配置php.ini
include_path=".:/php/includes"
auto_pretend_file="anti-inj.php"
auto_appent_file=

本文由站河南北大青鸟校区整编而成,如需了解更多IT资讯类的文章、新闻、课程和学习技巧、就业案例、招生详情等问题,可以对在线咨询老师进行一对一问答!


分享到: