web应用,客户端(浏览器) -》服务器。服务器提供必要的应用服务,客户端通过请求服务器中的资源来获得自己想要的服务。
常见的web服务应用框架:
windows+IIS+sql server/access+asp/aspx 解释器:.net
linux + apache/nginx+mysql+php 解释器:php
linux/unix/windows + tomcat/weblogic + oracle +jsp 解释器:java
操作系统 + 中间件 + 数据库
中间件、web容器、web服务器:脚本语言在中间件中执行
我们的web语言运行的必要条件就是中间件能够解析。
gettest.php 因为是php后缀,所以中间件能够解析,解析过后就能使用脚本页面中的扩展功能。
web根目录--指的就是提供web服务目录中的最顶层目录。根目录在url中表示是服务器地址后面的/ ,比如http://127.0.0.1/。
phpstudy的根目录在c:\phpstudy\www\,换句话说,只有在根目录下的文件资源才是服务器能对外提供的资源,才能被外界访问。
任何服务器中的应用资源都是放在web根目录下供用户访问。
http://127.0.0.1/test/test.php
C:\phpstudy\WWW\test\test.php ---- 文件的绝对路径
从安全的角度来说,需要寻找主动可控的点。对于可控点来说,最重要实际就是变量和函数。攻击者通过控制变量进入高危函数中,形成安全威胁。
变量实质上是一种存储器,它不是一个值,是很多个不停变化值的集合,并且实时更新。使用者指定它是什么它就是什么。
php中,声明变量的符号是$。$后面的字符就是变量名。
函数指的是一种计算规则,变量被放在函数中进行计算,会根据函数的计算方法得出对应结果。php中函数的特征是字符后面跟一对圆括号(),比如system(),就叫system函数。
函数在使用的时候有一些必要条件,变量必需满足函数计算所必需的个数,数据类型等才能实现。
字符类型,指的是我们php代码中的字符形式,字符类型关系到函数计算以及代码运行。
php中的数据类型:
1、整数 int
2、字符串 str
3、浮点数/小数 float
4、数组 array ---数组就是集合,用方括号[]
5、布尔值 boolean ---true/false 1/0 success/fail
6、对象 obj
7、空值 null
$_GET['a']解释:
$_GET是一个变量,变量名是_GET,$_GET的数据类型是数组,'a'是数组中的一个键。
```
array(1,2,'3')
```
1,2,'3'是数组中的值,每个值都有一个对应的键对它进行索引匹配。没有声明键的数组,默认按照0,1,2...的顺序进行键值配对。
$a = array(1,2,'3'); 如果只想取出2这个值,应该怎么表达?
php中使用中括号来取得中括号内中键所对应的值,$a[1]结果就是2
PHP弱类型漏洞,==和===的区别:
1、==判断值,不判断数据类型
2、===类型和值都要判断
文件操作函数:对文件的读取,写入,PHP中主流有两种
1、fopen() fwrite()fclose()
2、file_put_content() file_get_content()
使用fopen()打开了一条文件流通道,我们的读写的数据都在通道中,当读写完之后,就要使用fclose()关闭
监控日志的绑定可以参考php配置。