2019-10-8:渗透测试,基础学习,php基础,会话,文件包含,笔记
php面向对象基础
->调用符号
构造函数construct,主要用来创建对象时初始化对象,为成员变量赋初始值,总与new运算符一起使用在创建对象的语句中
析构函数destructor,与构造函数相反,当对象结束其生命周期时,系统自动执行析构函数,__destruct
继承,php使用关键字extends来继承一个类,php不支持多继承,class child extends parent{代码}
属性的访问控制,php对属性或方法的访问控制,是通过在前面添加关键字public公有,protected受保护,或private私有来实现
public公有,公有的类成员可以在任何地方被访问
protected受保护,受保护的类成员可以被其自身以及其子类和父类访问
private私有,私有的类成员只能被其定义所在的类访问
接口:可以指定某个类必需实现哪些方法,但不需要定义这些方法的具体内容,interface定义接口,要使用接口用implements,类必需实现接口中定义的所有方法,否则会报错,类可以实现多个接口,用逗号来隔开
php表单
html form 表单action表示提交到哪个页面,method表示使用什么提交方式
服务器接收用户发来的表单数据的方式:$_GET get,$_POST post,$_COOKIE cookie,$_REQUEST 用户发来的数据,可以是get和post
htmlspecialchars实体化编码
php文件包含
在php中,通过一些文件包含的函数将本地或远程服务器中文件包含解析到当前php中,达到读取文件,代码利用,函数调用的目的
include “文件名”==include("文件名")
include_once
去包含文件的时候,include_once包含一次即可,当找不到包含文件时候,会警告,后续代码依然会执行
require
require_once
包含文件时候,require_once,需要包含一次即可,当找不到包含的文件时候,会直接报错,后续代码不执行
包含过来的文件的文件中,只要文件中代码是标准格式的php代码就会被解析
copy good.png/b+shell.php/a bad.png,
good.png是正常图片,
/b表示bit流,
shell.php是木马文件或含有php代码的文件,
/a表示acscii文件,
bad.png表示生成的图片木马,后缀名不做要求,主要是ascii文件就行
会话管理
会话,服务器和用户之间传输数据的方式或途径,在通道传输数据之前需要建立通道,这个通道可以理解为会话,在客户端通过cookie来管理会话,在服务器通过session来管理会话
cookie的管理,首先需要服务器给用户分发cookie数据,setcookie(name,value,表达式,路径,域范围)后三者可以不写,其中表达式主要用来设置cookie的时效性,setcookie需要写在html代码之前
服务器获取cookie:$_COOKIE["cookie_name"],需要使用当前打开的浏览器去访问,不能换其他浏览器
服务器删除 setcookie("cookie_name","",time()-3600)// 设置 cookie 过期时间为过去 1 小时
session管理,session变量用于存储关于会话的信息,或者更改用户会话的设置,session变量存储单一用户的信息,并对于应用程序中所有页面都可用
session,工作机制,为用户创建唯一的uid,在该uid的基础上存储变量,uid放在cookie或他通过url去传输,放在url中不安全
在html代码之前,通过session_start()函数来开启session,开启之后可以通过session数组存储某些变量
销毁session,可以使用unset()或session_destroy()函数来删除,需要session_start()结合使用,session_destroy()会清楚所有的session,谨慎使用