‘壹’ php中有什么好的代码自动检查工具吗
通常的PHP集成开发软件,如 PhpDesigner 、 Zend Studio、Eclipse 等等都内置有代码检查工具。如果想在外部进行PHP代码检查,可以参考以下资料: PHP Mess Detector( PHP项目体检工具,根据你设定的标准(如单一文件代码体积,未使用的参数个数,未使用的方法数)检查PHP代码,超出设定的标准时报警。 PHP Copy Paste Detector( 顾名思义,检查冗余代码的 PHP Dead Code Detector( 看名字就知道了,检查从未被调用过的方法 PHP Code Sniffer( 老牌代码格式化工具,PHP写的,Pear包,可自己hack,可集成到命令行里。 PHP Code Beautifier,只有Windows GUI,Windows CMD很难用
‘贰’ PHP如何获得服务器时间
<?php
//首先设置时区为东八区,也就是我国的标准时间所在区。Asia/Hong_Kong、Asia/Shanghai(上海)或Asia/Urumqi(乌鲁木齐)等,都是东八区的时间。设置为其中的一种都可以
date_default_timezone_set('Asia/Shanghai');
//获取当前服务器时间
$time=date('Y-m-dH:i:s',time());
?>
‘叁’ php读取文本文件内容~
示例代码1: 用file_get_contents 以get方式获取内容
代码如下:
<?php
$url='';
$html=file_get_contents($url);
//print_r($http_response_header);
ec($html);
printhr();
printarr($http_response_header);
printhr();
?>
示例代码2: 用fopen打开url, 以get方式获取内容
代码如下:
<?
$fp=fopen($url,'r');
printarr(stream_get_meta_data($fp));
printhr();
while(!feof($fp)){
$result.=fgets($fp,1024);
}
echo"url body:$result";
printhr();
fclose($fp);
?>
示例代码3:用file_get_contents函数,以post方式获取url
代码如下:
<?php
$data=array('foo'=>'bar');
$data=http_build_query($data);
$opts=array(
'http'=>array(
'method'=>'POST',
'header'=>"Content-type: application/x-www-form-urlencodedrn".
"Content-Length: ".strlen($data)."rn",
'content'=>$data
),
);
$context=stream_context_create($opts);
$html=file_get_contents('',false,$context);
echo$html;
?>
示例代码4:用fsockopen函数打开url,以get方式获取完整的数据,包括header和body
代码如下:
<?
functionget_url($url,$cookie=false){
$url=parse_url($url);
$query=$url[path]."?".$url[query];
ec("Query:".$query);
$fp=fsockopen($url[host],$url[port]?$url[port]:80,$errno,$errstr,30);
if(!$fp){
returnfalse;
}else{
$request="GET$queryHTTP/1.1rn";
$request.="Host:$url[host]rn";
$request.="Connection: Closern";
if($cookie)$request.="Cookie:$cookien";
$request.="rn";
fwrite($fp,$request);
while(!@feof($fp)){
$result.=@fgets($fp,1024);
}
fclose($fp);
return$result;
}
}
//获取url的html部分,去掉header
functionGetUrlHTML($url,$cookie=false){
$rowdata=get_url($url,$cookie);
if($rowdata)
{
$body=stristr($rowdata,"rnrn");
$body=substr($body,4,strlen($body));
return$body;
}
returnfalse;
}
?>
示例代码5:用fsockopen函数打开url,以POST方式获取完整的数据,包括header和body
代码如下:
<?
functionHTTP_Post($URL,$data,$cookie,$referrer=""){
// parsing the given URL
$URL_Info=parse_url($URL);
// Building referrer
if($referrer=="")// if not given use this script. as referrer
$referrer="111";
// making string from $data
foreach($dataas$key=>$value)
$values[]="$key=".urlencode($value);
$data_string=implode("&",$values);
// Find out which port is needed - if not given use standard (=80)
if(!isset($URL_Info["port"]))
$URL_Info["port"]=80;
// building POST-request:
$request.="POST ".$URL_Info["path"]." HTTP/1.1n";
$request.="Host: ".$URL_Info["host"]."n";
$request.="Referer:$referern";
$request.="Content-type: application/x-www-form-urlencodedn";
$request.="Content-length: ".strlen($data_string)."n";
$request.="Connection: closen";
$request.="Cookie:$cookien";
$request.="n";
$request.=$data_string."n";
$fp=fsockopen($URL_Info["host"],$URL_Info["port"]);
fputs($fp,$request);
while(!feof($fp)){
$result.=fgets($fp,1024);
}
fclose($fp);
return$result;
}
printhr();
?>
示例代码6:使用curl库,使用curl库之前,你可能需要查看一下php.ini,查看是否已经打开了curl扩展
代码如下:
<?
$ch = curl_init();
$timeout = 5;
curl_setopt ($ch, CURLOPT_URL, '');
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
$file_contents = curl_exec($ch);
curl_close($ch);
echo $file_contents;
?>
关于curl库:
curl官方网站
curl 是使用URL语法的传送文件工具,支持FTP、FTPS、HTTP HTPPS SCP SFTP TFTP TELNET DICT FILE和LDAP。curl 支持SSL证书、HTTP POST、HTTP PUT 、FTP 上传,kerberos、基于HTT格式的上传、代理、cookie、用户+口令证明、文件传送恢复、http代理通道和大量其他有用的技巧
代码如下:
<?
functionprintarr(array$arr)
{
echo"<br> Row field count: ".count($arr)."<br>";
foreach($arras$key=>$value)
{
echo"$key=$value <br>";
}
}
?>
‘肆’ 有没有 php 代码审计的工具
具体代码如下:
<?php
$ch = curl_init();
$timeout = 5;
curl_setopt ($ch, CURLOPT_URL, '');
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
$file_contents = curl_exec($ch);
curl_close($ch);
echo $file_contents;
?>
PHP 独特的语法混合了C、Java、Perl以及PHP自创的语法。
它可以比CGI或者Perl更快速地执行动态网页。用PHP做出的动态页面与其他的编程语言相比,PHP是将程序嵌入到HTML(标准通用标记语言下的一个应用)文档中去执行,
执行效率比完全生成HTML标记的CGI要高许多;
PHP还可以执行编译后代码,编译可以达到加密和优化代码运行,使代码运行更快。
你可以去后盾人平台看看,里面有很多学习视频还有线上直播
‘伍’ 代码审计是什么
代码审计有什么好处
代码审计指的156是检查源代码中的安全缺陷6991,检查程序源代码是否存在安全隐患3780,或者有编码不规范的地方,通过自动化工具或者人工审查的方式,对程序源代码逐条进行检查和分析。
代码审计是一种以发现程序错误,安全漏洞和违反程序规范为目标的源代码分析,能够找到普通安全测试所无法发现的安全漏洞。
那么,为什么需要做代码审计?代码审计能带来什么好处?
99%的大型网站以及系统都被拖过库,泄漏了大量用户数据或系统暂时瘫痪,近日,英国机场遭勒索软件袭击,航班信息只能手写。
提前做好代码审计工作,非常大的好处就是将先于黑客发现系统的安全隐患,提前部署好安全防御措施,保证系统的每个环节在未知环境下都能经得起黑客挑战,进一步巩固客户对企业及平台的信赖。
通常来说,“黑客”可以利用的漏洞无非有以下几个方面:
1. 软件编写存在bug
2. 系统配置不当
3. 口令失窃
4. 嗅探未加密通讯数据
5. 设计存在缺陷
6. 系统攻击
大家可能就会问了,哪些业务场景需要做好代码审计工作?小型公司的官需要做吗?
代码审计的对象主要是PHP、JAVA、asp、.NET等与Web相关的语言,需要做代码审计的业务场景大概分为以下五个:
1. 即将上线的新系统平台;
2. 存在大量用户访问、高可用、高并发请求的网站;
3. 存在用户资料等敏感机密信息的企业平台;
4. 互联网金融类存在业务逻辑问题的企业平台;
5. 开发过程中对重要业务功能需要进行局部安全测试的平台;
通常说的整体代码审计和功能点人工代码审计区别吗?
整体代码审计是指代码审计服务人员对被审计系统的所有源代码进行整体的安全审计,代码覆盖率为100%,整体代码审计采用源代码扫描和人工分析确认相结合的方式进行分析,发现源代码存在的安全漏洞。但整体代码审计属于白盒静态分析,仅能发现代码编写存在的安全漏洞,无法发现业务功能存在的缺陷。
整体代码审计付出的时间、代价很高,也很难真正读懂这一整套程序,更难深入了解其业务逻辑。这种情况下,根据功能点定向审计、通过工具做接口测试等,能够提高审计速度,更适合企业使用。
功能点人工代码审计是对某个或某几个重要的功能点的源代码进行人工代码审计,发现功能点存在的代码安全问题,能够发现一些业务逻辑层面的漏洞。功能点人工代码审计需要收集系统的设计文档、系统开发说明书等技术资料,以便代码审计服务人员能够更好的了解系统业务功能。由于人工代码审计工作量极大,所以需要分析并选择重要的功能点,有针对性的进行人工代码审计。
安全的安全工程师都具备多年代码审计经验,首先通览程序的大体代码结构,在根据文件的命名第一时间辨识核心功能点、重要接口。下面就介绍几个功能、接口经常会出现的漏洞:
1. 登陆认证
a. 任意用户登录漏洞
b. 越权漏洞
2. 找回密码
a. 验证码爆破漏洞
b. 重置管理员密码漏洞
3. 文件上传
a. 任意文件上传漏洞
b. SQL注仿源入漏洞
4. 在线支付,多为逻辑漏洞
a. 支付过程中可直接修改数据包中的支付金额
b. 没有对购买数量进行负数限制
c. 请求重访
d. 其他参数干扰
5. 接口漏洞
a. 操作数据库的接口要防止sql注入
b. 对外暴露的接口要注意认证安全
经过高级顷者安全工程师测试加固后的系统会变得更加稳定、安全,测试后的报告可以帮助管理人员进行更好的项目决策,同时证明雀大薯增加安全预算的必要性,并将安全问题传达到高级管理层,进行更好的安全认知,有助于进一步健全安全建设体系,遵循了相关安全策略、符合安全合规的要求。