字符串处理函数
文件包含
引入某些文件,去使用该文件中的内容。
在PHP中文件包含的函数有4个:
-
include "filename"
或include("filename")
包含文件时,如果找不到被包含的文件会警告,后续代码依旧会执行
-
include_once "filename"
用法和
include
用法基本一致,包含文件只需要一次即可,后续可以一直使用 -
require "filename"
包含文件时,如果找不到会报致命错误,脚本停止运行,后面的代码不执行
-
require_once "filename"
require_once
语句和 require 语句完全相同,唯一区别是 PHP 会检查该文件是否已经被包含过,如果是则不会再次包含。
被包含过来的文件,在解析的过程中,如果符合PHP的标准语法,就会被解析执行;如果不符合PHP标准语法,就会读取文本。
用cmd
命令行制作一个图片马:
copy example.png/b+example.txt/a webshell.png
a
ASCII文本格式
b
该文件时二进制文件
会话管理
cookie和session的比较:
-
cookie是存放在用户的浏览器中,是服务端通返回包中set-cookie来设置,cookie表示用户的浏览器和服务器之间会话状态,登录成功之后方可获取cookie数据,该数据一般具有时效性,失效之后需要用户重新去登录。有了cookie数据之后,用户的每次请求有会带上cookie,服务端会验证该cookie的合法性和时效性,cookie的发送需要遵循浏览器的同源策略;
-
Session是存放在服务端,表示用户和服务器时间的会话状态,session和cookie是一一对应的,服务器也需要记住哪个用户登录该站点,一般情况下,session以文件的形式保存在/tmp目录中,形式为:sess_XXXXX(例: sess_nti62h7rrrnb5udpvfbad13cg5s9kqrm),此刻服务器给浏览器分配的cookie是: nti62h7rrrnb5udpvfbad13cg5s9kqrm,只要该cookie的值被修改过,那么服务器就要求用户重新登录!!!!
查看cookie的方式:
- 在URL中输入
javascript:alert(document.cookie)
; - 在console中输入:
alert(document.cookie)
; - 在
Network
,选中Name
中的指定文件,查看Header
中的Request Headers
。 Application -> Storage -> Cookies
浏览器中的cookie
PHPSESSID=qrdqf4l0jiqk7p5s84mh0p1hn4
在服务器中保存这对应的session
sess_qrdqf4l0jiqk7p5s84mh0p1hn4