安全矩阵

 找回密码
 立即注册
搜索
楼主: Mint97

袁青学习日记

[复制链接]

8

主题

46

帖子

256

积分

中级会员

Rank: 3Rank: 3

积分
256
 楼主| 发表于 2020-6-29 18:07:49 | 显示全部楼层
回顾php

什么是PHP
PHP是一种服务器端的html脚本语言/编程语言,该语言让web开发人员快速的书写动态生成的网页。
静态网站与动态网站的区别:
网站:
网站(英文名字为website)是指在因特网上,根据一定的规则,使用HTMLphp代码语言制作的用于展示特定内容的相关网页的集合。简单地说,网站是一种通讯工具,就像布告栏一样,人们可以通过网站来发布自己想要公开的资讯,或者利用网站来提供相关的网络服务。人们可以通过网页浏览器来访问网站,获取自己需要的资讯或者享受网络服务。
静态网站的特点:
1、网页的内容一经发布在网站服务器上,无论是否有用户访问,每个静态网站的内容都是保存在网站服务器上的,也就是说,静态网站是实实在在保存在服务器上的文件,每一个网页都是一个独立的文件。
2、静态网站的内容是相对稳定的,因此容易被搜索引擎。
3、静态网页没有数据库的支持,在网站制定和维护方面工作量较大,因此当网站信息量很大的时候静态网页制作方面比较困难。
4、静态网页的交互性较差,在功能方面有较大的的限制。
交互性就是网页和浏览者之间的信息传递的双向性。
网站它不是一个“被动”的媒体。和电视,电台等媒体不一样的是,网页是需要我们用鼠标去点击的。
浏览者点击连接,网页显示出需要的内容然后在传递给浏览者。这就是网页的交互性。
动态网站特点:
1、交互性:网页会根据用户的要求和选择而动态地改变和响应,浏览器作为客户端,成为一个动态交流的桥梁,动态网站的交互性也是就web发展的潮流。
2、自动更新:即无需手动更新html文档,便会自动生成新页面,可以大大节省工作量。
3、因时因人而变。
网站基本概念
服务器概念
服务器:能够提供服务的机器。是否能够提供服务取决于机器上所安装的软件(服务软件)
Web服务器:提供web服务(网站访问),就需要安装web服务软件,如Apache,tomcat,iis等
IP的概念:
IP:网络之间互连的协议也就是为计算机网络相互连接进行通信而设计的协议。在因特网中,它是能使连接到网上的所有计算机网络实现相互通信的一套规则,规定了计算机在因特网上进行通信时应当遵守的规则。任何厂家生产的计算机系统,只要遵守IP协议就可以与因特网互连互通。IP地址具有唯一性,
域名
域名(Domain Name),是由一串用点分隔的名字组成的Internet上某一台计算机或计算机组的名称,用于在数据传输时标识计算机的电子方位(有时也指地理位置,地理上的域名,指代有行政自主权的一个地方区域)。域名使一个IP地址有"面具" 一个域名的目的是成为便于记忆和沟通的一组服务器的地址(网站电子邮件FTP)
特殊IP:127.0.0.1,代表本机
特殊域名:localhost
DNS:
DNS(Domain Name System,域名系统),因特网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串。通过主机名,最终得到该主机名对应的IP地址的过程叫做域名解析(或主机名解析)。
用户输入域名:localhost---》DNS(localhost  127.0.0.1)---》服务器电脑(IP:127.0.0.1)
端口
"端口"是英文port的意译,可以认为是设备与外界通讯交流的出口。端口可分为虚拟端口和物理端口,其中虚拟端口指计算机内部或交换机路由器内的端口,不可见。例如计算机中的80端口、21端口、23端口等。物理端口又称为接口,是可见端口,计算机背板的RJ45网口,交换机路由器集线器等RJ45端口。


php基础
PHP语句分隔符
语句分隔符:在php中,代码是以行为单位的,系统需要通过判断行的结束,该结束通常都是一个符号:分号“;”(英文状态的)
定义内容:
$a = 5;
Echo hello world;
特殊说明:
1、php中标记结束符?>有自带语句结束符的效果,最后一行php代码可以没有语句结束符“;”
2、PHP中其实很多代码的书写并不是嵌入到html中,而是单独存在。通常书写习惯中就不建议使用标记结束符?>,php会自动从开始到最后全部认为php代码,从而解析。
回复

使用道具 举报

8

主题

46

帖子

256

积分

中级会员

Rank: 3Rank: 3

积分
256
 楼主| 发表于 2020-6-30 16:24:59 | 显示全部楼层
本帖最后由 Mint97 于 2020-6-30 17:27 编辑

PHP学习(2)

变量
php是一种动态网站开发的脚本语言,动态语言特点就是交互性,会有数据的传递,而php作为“中间人”,需要进行数据的传递,传递的前提就是php能自己储存数据(临时存储)。
变量基本概念
变量来源于数学,是计算机语言中能储存计算结果或能表示值抽象概念。变量可以通过变量名访问。在指令式语言中,变量通常是可变的。
1、变量是用来存储数据的
2、变量是存在名字的
3、变量是通过名字来访问的:数据
4、变量是可以改变的:数据
变量的使用
PHP中的所有变量都必须使用“$”
1、定义:在系统中增加对应的变量名字(内存)
2、赋值:可以将数据赋值给变量名(可以在定义的同时完成)

3、可以通过变量名访问存储的数据
4、可以将变量从内存中删除

预定义变量
预定义变量:提前定义的变量,系统定义的变量,存储许多需要用到的数据(预定义变量都是数组)
$_GET:获取所有表单以get方式提交的数据
$_POSTOST提交的数据都会保存在此
$_REQUEST:GET和POST提交的都会保存
$GLOBALS:php中所有的全局变量
$_SERVER:服务器信息
$_SESSION:session会话数据
$_COOKIE:cookie会话数据
$_ENV:环境信息
$_FILES:用户上传的文件信息
变量传值
所谓变量传值就是将一个变量赋值给另外一个变量。

变量传值有两种方式:值传递和引用传递。

1:值传递:值传递就是将变量保存的值复制一份,然后将新的值给另外一个变量保存(两个变量没有关系)                                 

2:引用传递:引用传递就是将变量保存的值所在的内存地址传递给另外一个变量,两个变量指向同一块内存空间(两个变量实质上是同一个值)
在解释上述两个概念前,先介绍一点有关计算机内存的知识:


在计算机内存中,通常有以下几个分区:


栈区:是指程序可以操作的内存部分,这一部分不存储数据,只运行程序代码,这部分内存相对很小但是运行速度极快。


代码段:是指存储程序的内存部分,但是该部分不执行程序。


数据段:是指存储普通数据的内存部分。


堆区:是指复杂数据的内存部分,内存空间相对很大,但是效率低。
值传递:

引用传递:


常量
常量与变量一样,都是用来保存数据的。
常量的基本概念
常量:是一种在程序运行当中,不可改变的量(数据)
常量一旦定义,通常数据不可改变(用户级别)
常量定义形式

1、define(“常量名”, 常量值);

2、const 常量名 = 常量值;



常量名字的命名规则:

1、常量不需要使用“$”符号,一旦使用系统就会认为是变量。
2、常量的名字不能以数字开头
3、常量的名字通常是以大写字母为主(与变量以示区别)
4、常量命名的规则 比变量要松散,可以使用一些特殊字符,该方式只能使用define定义。
常量使用形式
常量与变量是一样的
系统常量
系统常量:系统帮助用户定义的常量,用户可以直接使用。
PHP_VERSION:php版本号
PHP_INI_SIZE:整形大小
PHP_INI_MAX:整形能表示的最大值




本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

8

主题

46

帖子

256

积分

中级会员

Rank: 3Rank: 3

积分
256
 楼主| 发表于 2020-7-1 15:36:38 | 显示全部楼层
本帖最后由 Mint97 于 2020-7-2 13:49 编辑

php学习(三)



系统常量
在php中还有一些特殊的常量,他们有双下划线+常量名+双下划线结束,这种常量称之为系统魔术常量,魔术常量的值通常会跟着环境变化,但是用户改变不了。
__DIR__:当前被执行的脚本所在电脑的绝对路径
__FILE__:当前被执行的脚本所在的电脑的绝对路径(带自己文件的名字)
__LINE__:当前所属的行数
__CLASS__:当前所属的类
__NAMESPACE__:当前所属的命名空间
__METHOD__:当前所属的方法


数据类型
数据类型:在php中指的是存储的数据本身的类型,而不是变量的类型。PHP是一种弱类型语言,变量本身没有数据类型。
php的八种数据类型
在php中将数据分为三大类八小类
简单(基本)数据类型:4个小类
整型:int/integer,系统分配4个字节存储,表示整数类型(有前提)
浮点型:float/double,系统分配8个字节存储,表示小数或者整型存不下的整数。
字符串型:string,系统会根据实际长度分配,表示字符串(引号)

布尔类型:bool/boolean,只有两个值:true/false

复合数据类型:2个小类
对象类型:object,存放对象(面向对象)
数组类型:array,存储多个数据(一次性)

特殊数据类型:2个
资源类型:resource,存放资源数据(php外部资源,如数据库、文件)
空类型:NULL,只有一个值就是NULL(不能运算)

类型转换
类型转换:在很多的条件下,需要指定的数据,需要外部数据(当前php取得的数据)转换成目标数据类型。

在php中有两种类型转换方式:
1、自动转换:系统根据需求自己判定,自己转换(用的比较多,但效率较低)
2、强制(手动)转换:认为根据需要的目标类型转换
强制转换规则:在变量之前增加一个括号(),然后在里面写上对应的类型:int,float,NULL等
在转换过程中,用的比较多的是转布尔类型(判断条件)和转数值类型(算术运算)

其他类型转布尔类型:true/false


其他类型转数值的说明
1、布尔true为1,false为0
2、字符串转数值有自己的规则
2.1、以字母开头的字符串,永远为0
2.2、以数字开头的字符串,取到碰到字符串为止(不会同时包含两个小数点)



类型判断
通过一组类型判断函数,来判断变量,最终返回这个变量所保存数据的数据类型(相同结果为true,失败为false):是一组is_开头后面跟类型名字的函数:

Bool类型不能用echo来查看,可以使用var_dump结构查看
var_dump(变量1,变量2)  ps:有判断和输出两种作用。当括号内是一个或者多个变量时,是输出:当括号内包有运算符时,是判断。


还有一组函数可以来获取以及设定数据(变量)的类型
gettype(变量名):获取类型,得到的是该类型对应的字符串
settype(变量名,类型):设定数据类型:与强制转换不同


1、强制转换(类型)变量名,是对数据值复制的内容进行转换(不会实际处理存储的内容)
2、settype会直接改变数据本身。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

8

主题

46

帖子

256

积分

中级会员

Rank: 3Rank: 3

积分
256
 楼主| 发表于 2020-7-2 17:18:41 | 显示全部楼层
php学习(四)
运算符
运算符:是一种将数据进行运算的特殊符号,在PHP中一共有十种运算符之多。
赋值运算符
赋值运算:符号是“=”,表示将右边的结果(可以是变量、数据、常量和其他运算出来的结果),保存到内存的某个位置,然后将位置的内存地址赋给左边的变量。
算术运算符
+、-、*、/、%
比较运算
比较运算:比较两个数据的大小,或者两个内容是否相同。
>、>=、<、<=、==、!==、===、!==
逻辑运算符
逻辑运算符:针对不同的结果进行匹配。满足条件返回true,不满足返回false
&&:逻辑与,左边的条件与右边的条件同时成立(两边结果都为true)
||:逻辑或,左边的条件或者右边的条件只有一个满足即可
!:逻辑非,对已有条件进行取反,如本身为true,取反结果就是false
可以运用var_dump()来使用





流程控制
流程控制:代码执行的方向
控制分类
顺序结构:代码从上往下,顺序执行(代码执行的最基本结构)
分支结构:给定一个条件,同时有多种可执行代码,然后会根据条件执行某一段代码
循环结构:在某个条件控制范围内,制定的代码(块)可以重复执行
分支结构
在php中,分支结构主要有两种:if分支和switch分支
IF分支
基本语法:if分支php也提供多种方式来实现

最简if:只有一段代码,但是可以选择是否执行
if(条件表达式){
        //满足条件所要执行的内容;//顺序结构
}

基础if:有两面性,满足条件或者不满足条件都有对应的执行代码
if(条件表达式){
        //满足条件所要执行的内容;//顺序结构
} else{
       //满足条件所要执行的内容;//顺序结构
}


复杂if结构:在判断条件之后,通常就有两种结果:满足或者不满足;在不满足之后还可以再次进行条件判断
实例:


Switch分支
switch分支:有一组情形存在,通过一条件,通常有多个值,但是每一个值都会有对应不同的代码要执行。
switch判断方法:是将条件放到分支结构内部判断

如果您希望有选择地执行若干代码块之一,请使用 Switch 语句。

使用 Switch 语句可以避免冗长的 if..elseif..else 代码块。



switch基本语法:
switch(条件表达式){
          //所有条件判断:逐个进行
         case 值1:                         //当前条件表达式的结果与值1相等(==)
                      要执行的代码;
                     Break;                //在switch中,如果条件匹配成功,那么系统就不会再次匹配条件,会自动顺序执行向下的所有代码(case代码除外),需要中断执行:break表示结束switch。
        case 值2:
                      要执行的代码;
                      break;
              ……
              //可以使用类似else的语法:都不匹配
           default:
                 //都不匹配要执行的代码
}

工作原理:首先对一个简单的表达式 n(通常是变量)进行一次计算。将表达式的值与结构中每个 case 的值进行比较。如果存在匹配,则执行与 case 关联的代码。代码执行后,使用 break 来阻止代码跳入下一个 case 中继续执行。default 语句用于不存在匹配(即没有 case 为真)时执行。



if与switch的选择
1、if能做所有的分支结构事情
2、switch处理的是条件比较多,同时比较单一,而且是固定值匹配的分支结构。


循环结构
循环结构:代码段在一定的控制下,可以多次执行


在PHP中循环结构有以下几种:
for循环:通过条件、起始和终止判断执行
whlie循环:通过判断条件终止
do-whlie循环:跟whlie差不多
foreach循环:专门针对数组


for循环


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

8

主题

46

帖子

256

积分

中级会员

Rank: 3Rank: 3

积分
256
 楼主| 发表于 2020-7-3 18:12:46 | 显示全部楼层
PHP学习(五)
for循环
for循环基本语法:
for(expr1;expr2;expr3){
            //expr1:定义初始化条件,可以有多个赋值语句存在,使用逗号分隔即可
            //expr2:边界判定,限定循环执行的次数
            //expr3:用来执行条件变化
            //这里写循环体:也就是符合expr2条件后,执行的代码。
}
ps:最后输出为4,是因为先要执行$i++,然后在判断是否符合条件,所以$i++是在最后的一定执行的。所以,我们最后就输出4.



上面就是对for循环简单的应用了,一定要记住,使用循环的时候,一定要确保循环能结束,不要有死循环。


for循环语句流程控制图:




whlie循环
whlie循环基本语法:
定义条件的初始化;
whlie(条件表达式){
           //条件表达式就是判断边界的条件
          循环体;//增量和代码块,完全按顺序执行。增量和代码块位置不同,结果就不同。
}





do-whlie循环
do-while循环:while循环首先进行条件判断,有可能出现第一次就条件不满足,那么就会直接失败(循环体可能一次都不执行),do-while就是先执行,后判断,(至少会执行一次循环体)。
while循环执行流程(左)   do-while循环执行流程(右)



do-whlie循环基本语法:
定义条件的初始化;
do{
         循环体;//增量和代码块,完全按顺序执行。增量和代码块位置不同,结果就不同。
}whlie(条件表达式);



循环控制

是用来用在循环结构中,控制程序放弃本次循环continue语句之后的代码并转而进行下一次循环。continue本身并不跳出循环结构,只是放弃这一次循环。如果在非循环结构中(例如if语句中,switch语句中)使用continue,程序将会出错。


是被用在上面所提的各种循环和switch语句中的。他的作用是跳出当前的语法结构,执行下面的语句。break语句可以带一个参数n,表示跳出循环的层数,如果要跳出多重循环的话,可以用n来表示跳出的层数,如果不带参数默认是跳出本重循环。

文件包含

文件包含:在PHP脚本中,去将另外一个文件(也是PHP形式)包含进来,去合作完成一件事情。

文件包含的作用

文件包含的意义:
1、使用被包含文件中的内容,实现代码的共享:向上包含(索要)
2、自己有东西可以给别的文件使用,
实现代码的共享:向下包含(给予)



文件包含四种形式
include:包含文件
include_once:系统会自动判断文件包含过程中,是否已经包含过(一个文件最多被包含一次)
require:与include一样
require_once:与include_once一样

包含基本语法:
include “文件名字”;//路径问题,可以放在同一个目录下。





文件加载原理
1、在文件加载(include或者require)的时候,系统会自动的将被包含文件中的代码相当于嵌入到当前文件中
2、加载位置:在哪加载,对应的文件中的代码嵌入的位置就是对应的include位置。
3、在php中被包含的文件是单独进行编译的。
include和require的区别

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

8

主题

46

帖子

256

积分

中级会员

Rank: 3Rank: 3

积分
256
 楼主| 发表于 2020-7-4 16:23:48 | 显示全部楼层
php学习(六)
include和require区别
include和require的区别:本质都是包含文件,唯一的区别在于包含不到文件的时候,报错的形式不一样。
include的错误级别比较轻:不会组织代码的执行。

require要求较高:如果包含出错,require后面的代码不再执行。



文件加载路径
文件在加载的时候需要指定文件路径才能保证php正确的找到对应的文件。

文件的加载路径包含两大类:
1、绝对路径
从磁盘的根目录开始(本地绝对路径)
Windows:磁盘c:/路径/php文件
Linux:/路径/php文件
从网站根目录开始(网站绝对路径)
/:相对于网站主机名字对应的路径
localhost/index.php-->E:/server/apache/htdocs/index.php


2、相对路径:从当前文件所在目录开始的路径
./文件名:表示当前文件夹
../上级目录/文件名:表示所包含的文件在当前文件的上一个目录下。




函数
函数的基本概念
函数:function,是一种语法结构,将实现某一个功能的代码块(多行代码)封装到一个结构中,从而实现代码的重复利用。

基本语法:
function 函数名(参数){
           //函数体
           //返回值:return 结果
}

函数定义的目的:是为了实现代码的重复利用,一个功能一个函数。

函数的使用:通过访问函数的名字+();//如果函数在定义的过程中有参数,那么在调用的时候必须传入对应的参数:函数是一种结构不会自动运行,必须通过调用才会执行。



函数命名规范
命名规范:由字母、数字和下划线组成,但是不能以数字开头。
函数作为一种常用的结构,一般遵循以下规则:函数通常名字代表着函数的功能,而有些功能会比较复杂,可能一个单词不足以表达,需要多个组合。

1、驼峰法:除了左边第一个单词外,后边所有的单词首字母都大写:showParentInfo()
2、下划线法:单词之间通过下划线连接,单词都是小写:show_parent_info()

函数名字:在一个脚本中,不允许出现同名函数。


参数详解
函数的参数分为两种:形参和实参

形参
形参:形式参数,不具有实际意义的参数,是在函数定义时使用的参数

实参
实参:实际参数,具有实际数据意义的参数,是在函数调用时使用的
形参是实参的载体:实参在调用时通常是需要传入到函数内不参与计算,那么需要在函数内部去找到实际数据所在的位置本身,需要实际调用的时候,将数据以实参的形式传递给形参:给形参赋值,从而使得函数内部可以用到外部数据。

1、系统调用add函数:去内存中寻找是否有add函数:有
2、系统会在栈区开辟内存空间运行函数add
3、系统会查看函数本身是否有形参:有,两个
4、系统会判断调用的时候是否有实参:有,两个
5、系统默认会将实参的值$num1,20取出,按顺序赋值给形参
6、执行函数体
7、返回函数执行(返回值)
ps:
1、在PHP中允许实参多余形参:函数内部不用而已
2、在PHP中理论上形参个数没有限制(实际开发不会太多)
3、实参不能少于形参个数

函数体
函数体:函数内部(大括号{}里面)的所有内容都称之为函数体
函数体:基本上所有的代码都可以实现
1、定义变量
2、定义常量
3、使用流程控制(分支、循环)
4、可以调用函数

函数返回值
返回值:return,指的是将函数实现的结果,通过return关键字,返回给函数外部(函数调用处):在php中所有的函数都有返回值。(如果没有明确return使用,那么系统默认返回NULL)

返回值的作用:将计算结果返回给调用处。

作用域
作用域:变量(常量)能够被访问的区域
1、变量可以在普通代码中定义
2、变量可以在函数内部定义

在PHP中作用域分为三种、
1、全局变量:就是用户普通定义的变量(函数外部定义)
所属全局空间:在PHP中只允许在全局空间使用:理论上函数内部不可使用。
脚本周期:直到脚本运行结束(最后一行代码执行完)
2、局部变量:就是在函数内部定义的的变量
所属当前函数空间:在PHP中只允许在当前函数自己内部使用
函数周期:函数执行结束
3、超全局变量:系统定义的变量(与预定义变量)
所属超全局空间:没有访问限制(函数内外都可以访问)
  • GLOBALS:[color=rgba(0, 0, 0, 0.5)] 这种全局变量用于在 PHP 脚本中的任意位置访问全局变量
  • $_SERVER
  • $_REQUEST
  • $_POST
  • $_GET
  • $_FILES
  • $_ENV
  • $_COOKIE
  • $_SESSION


如果想函数内部使用外部变量:除了$GLOBALS之外,通过参数传递(如果要统一战线还可以使用引用传值)


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

8

主题

46

帖子

256

积分

中级会员

Rank: 3Rank: 3

积分
256
 楼主| 发表于 2020-7-5 16:45:47 | 显示全部楼层
本帖最后由 Mint97 于 2020-7-5 16:55 编辑

PHP学习(七)
global关键字
PHP关键字global如果用在function内部,则说明这个function内用的这个变量是全局的,就是在整个页面里都能起作用。
首先,一个使用 global 的例子:
使用 global
<?php
$a = 1;
$b = 2;
function Sum()
{
   global $a, $b;
   $b = $a + $b;
}
Sum();
echo $b;
?>

以上脚本的输出将是 "3"。在函数中申明了全局变量 $a 和 $b,任何变量的所有引用变量都会指向到全局变量。对于一个函数能够申明的全局变量的最大个数,PHP 没有限制。
在全局范围内访问变量的第二个办法,是用特殊的 PHP 自定义 $GLOBALS 数组。前面的例子可以写成:
使用 $GLOBALS 替代 global

<?php
$a = 1;
$b = 2;
function Sum()
{
   $GLOBALS["b"] = $GLOBALS["a"] + $GLOBALS["b"];
}
Sum();
echo $b;
?>

虽然以上方式可以实现局部与全局的互访,但是通常不会这么用,一般如果存在特殊使用,也会使用参数的形式来访问。(还可以使用常量,常量没有空间限制)

静态变量

静态变量只存在于函数作用域内,也就是说,静态变量只存活在栈中。
一般的函数内变量在函数结束后会释放,比如局部变量,但是静态变量却不会。(静态变量都是局部变量)
就是说,下次再调用这个函数的时候,该变量的值会保留下来。
只要在变量前加上关键字static,该变量就成为静态变量了。
基本语法:
function 函数名(){
              //定义变量
             static $变量名 = 值;     //通常会在定义的时候就直接赋值。

}



数组
数组:array,数据的组合,指将一组数据(多个)存储到一个指定的容器中,用变量指向该容器,然后可以通过变量一次性得到该容器中的所有数据。

数组定义语法
在PHP中系统提供多种定义数组的方式:
1、使用array关键字:最常用的
$变量 = array(元素1,元素2,元素3,……);
2、可以使用中括号来包裹数据:
$变量 = [元素1,元素2,元素3,……];
3、隐形定义数组:给变量增加一个中括号,系统自动变成数组
$变量[] = 值1;//如果不提供下标也可以,系统自动生成
$变量[下标] = 值;//中括号里面的内容称之为下标key,该下标可以是字母(单词)或者数字,与变量命名的规则相似、




在 PHP 中,有三种类型的数组:
  • 数值数组 - 带有数字 ID 键的数组
  • 关联数组 - 带有指定的键的数组,每个键关联一个值
  • 多维数组 - 包含一个或多个数组的数组


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

8

主题

46

帖子

256

积分

中级会员

Rank: 3Rank: 3

积分
256
 楼主| 发表于 2020-11-1 18:58:55 | 显示全部楼层
web安全攻防渗透回顾
第一章  渗透测试之信息收集
一 收集域名信息
1、whoise查询
whois就是一种传输协议,简单说whois就是一个用来查询
[size=100%]域名
是否已经被注册以及注册域名的详细信息的数据库(如域名所有人、
[size=100%]域名注册
商等相关信息)。通过whois合法的来实现对域名相关信息信息的查询。

在线的whoise查询常用网站有爱站工具网和站长之家等。通过这些网站可以查询域名的相关信息。
2、备案信息查询
网站备案是根据国家法律法规需要网站的所有者向国家有关部门申请的,主要有。这是国家信息产业部对网站的一种管理,
为了防止在网上从事非法的网站经营活动,打击不良互联网信息的传播。
常用的网站有以下两个:
ICP备案网站
天眼查

二 收集敏感信息
我们可以通过构造特殊的关键字语法来搜索互联网上的相关敏感信息。
如:

1.把搜索范围限定在网页标题中——intitle
网页标题通常是对网页内容提纲挈领式的归纳。把查询内容范围限定在网页标题中,有时能获得良好的效果。使用的方式,是把查询内容中,特别关键的部分,用“intitle:”领起来。
例如,找标题里含有第一页的SEO文章,就可以这样查询:SEO intitle:第一页
注意,intitle:和后面的关键词之间,不要有空格。


2.把搜索范围限定在特定站点中——site
有时候,您如果知道某个站点中有自己需要找的东西,就可以把搜索范围限定在这个站点中,提高查询效率。使用的方式,是在查询内容的后面,加上“site:站点域名”。
例如,到淘宝找靴子,就可以这样查询:靴子 site:taobao.com
注意:site后的冒号为英文字符,而且,冒号后不能有空格,否则,“site:”将被作为一个搜索的关键字。此外,网站域名不能有“http”以及
“www”前缀,也不能有任何“/”的目录后缀;网站频道则只局限于“频道名.域名”方式,而不能是“域名/频道名”方式。诸如“金庸site:
edu.sina.com.cn/1/”的语法是错误的。

3.把搜索范围限定在url链接中——inurl
网页url中的某些信息,常常有某种有价值的含义。于是,您如果对搜索结果的url做某种限定,就可以获得良好的效果。实现的方式,是用“inurl:”,后跟需要在url中出现的关

键词。
例如,找关于SEO的论坛,可以这样查询:SEO inurl:bbs
上面这个查询串中的“seo”,是可以出现在网页的任何位置,而“bbs”则必须出现在网页url中。
注意,inurl:语法和后面所跟的关键词,不要有空格。

4.查询某一类文件(往往带有同一扩展名)
“filetype:”--这是个尚在测试阶段的GOOGLE特色查询,不过功能已经非常强大,可以做很多意想不到的事情哦。
示例:搜索关于电子商务(ECOMMERCE)的PDF文档。
搜索:“ecommerce filetype:pdf”
你也可以指定chm(电子书籍)或者doc,ppt,zip,rar等。


5.精确匹配——双引号
如果输入的查询词很长,google在经过分析后,给出的搜索结果中的查询词,可能是拆分的。如果您对这种情况不满意,可以尝试让google不拆分查询词。给查询词加上双引号,

就可以达到这种效果。
例如,搜索 小蔡SEO培训 ,如果不加双引号,搜索结果被拆分,效果不是很好,但加上双引号后,“小蔡SEO培训”,获得的结果就全是符合要求的了。

6.搜索所有链接到某个URL地址的网页
如果你拥有一个个人网站,估计很想知道有多少人对你的网站作了链接。而“link”语法就能让你迅速达到这个目的。
示例:搜索所有含指向“www.0579seo.com”链接的网页。
搜索:“link:www.0579seo.com

7.要求搜索结果中不含特定查询词
如果您发现搜索结果中,有某一类网页是您不希望看见的,而且,这些网页都包含特定的关键词,那么用减号语法,就可以去除所有这些含有特定关键词的网页。
例如,搜 神雕侠侣,希望是关于武侠小说方面的内容,却发现很多关于电视剧方面的网页。那么就可以这样查询:神雕侠侣 -电视剧
注意,前一个关键词,和减号之间必须有空格,否则,减号会被当成连字符处理,而失去减号语法功能。减号和后一个关键词之间,有无空格均可

8.注册码的技巧
在google里搜索时敲入“你搜索的软件名 94fbr”,一般情况下就会立刻搜索到注册
码,举个例子,搜索“fireworks 94fbr”,就会得到fw的注册码
以下内容为程序代码:
<script type=text/javascript>
function doZoom(size){ document.getElementById('zoom').style.fontSize=size+'px'}
</script>

9.图片搜索
    我不得不承认,GOOGLE的图片搜索功能真是个伟大的发明!GOOGLE自称可以检索320,000,000张图片,并称自己为“互联网上最好用的图像搜索工具”。尽管目前该功能尚在测试阶段,但的确已经非常好用!
     GOOGLE首页点击“图像”链接就进入了GOOGLE的图像搜索界面“images.google.com”。你可以在关键字栏位内输入描述图像内
容的关键字,如“britney spears”,就会搜索到大量的小甜甜布兰妮的图片。我目前尚不是很清楚图片的排列标准,不过以观察来看,似乎图片文件名完全符合关键字的结果排列比较
考前,然后才按照普通的页面搜索时的标准排列。
     GOOGLE给出的搜索结果具有一个直观的缩略图(THUMBNAIL),以及对该缩略图的简单描述,如图像文件名称,以及大小等。点击缩略图,页面
分成两祯,上祯是图像之缩略图,以及页面链接,而下祯,则是该图像所处的页面。屏幕右上角有一个“Remove
Frame”的按钮,可以把框架页面迅速切换到单祯的结果页面,非常方便。搜索方法跟网站搜索一致。

补充:(可能有一些重复)
Google中有很多不为人知的技巧,掌握好这些技巧可以让你更善于利用互联网上的丰富资源。比如我想找一些关于flash方面的电子书,只要输入如下关键词(inurl:flash filetype:chm),其中inurl表明下载地址中包含flash,filetype表明文件名是chm格式,你也可以指定pdf或者doc, ppt,zip,rar等。
其他一些特殊语法:
1.intitle:搜索关键词(intitle:variation)只搜索网页标题含有关键词的页面。
2.inurl:搜索关键词(intitle:variation)只搜索网页链接含有关键词的页面。
3.intext:搜索关键词(intext:variation)只搜索网页body标签中的文本含有关键词的页面。
4.site:搜索关键词(site:scile.com)只搜索scile.com站内的内容。
5.link:搜索关键词(link:scile.com)返回所有链接指向scile.com的页面。
6.filetype:搜索关键词(filetype:cfm)只搜索指定后缀为cfm页面的内容。这个属性很有用,通常指定 filetype:chm 或 filetype:pdf 来搜索电子书,有助于你更精确的找到你想要的内容。

三 收集子域名信息

证书透明度公开日志枚举

SSL基础概念

什么是加密?

加密是一种新型的电子信息保护方式,就像过去使用保险箱和密码锁保护纸上信息一样。加密是密码学的一种技术实现方式:信息被转换为难以理解的形式(即编码),以便只有使用密钥才能将其转译为可理解的形式(即解码)。以设备加密为例,需要按照程序或设备提供的明确说明,利用可解译信息的 PIN 码或利用复杂的算法来破解密码。加密实际上是依靠数学对信息进行编码和解码。

什么是 HTTPS?

HTTP(超文本传输协议)是浏览器连接到网站时采用的技术手段。HTTPS 是经过加密的 HTTP 连接,更为安全可靠。如果您在网址部分看到的是  HTTPS 而非 HTTP,则表明与网站的连接是安全的。对于安全的连接,大多数浏览器还会显示安全连接图标,例如 Chrome  会显示一个绿色的挂锁图标。

为什么要使用 HTTPS?

即使您的网站并不处理敏感讯息,您也应使用 HTTPS 来保护您的网站。HTTPS 有助于保障网站的完整性,并捍卫用户的隐私和安全。此外,只有提供 HTTPS 的网站才能使用最新推出的一些非常强大的网络平台功能。

为什么加密非常重要?

我们的讯息要穿过复杂的网络系统才能从 A 点到达 B  点。在这个过程中,讯息很容易被知道如何操纵网络的非既定接收方拦截。此外,便携式设备(不仅仅只是手机)已成为我们生活中必不可少的一部分,其中不仅有我们的照片、讯息记录、电子邮件,还有存储在应用中的私人数据(为了方便起见,我们一般设为始终登入这些应用)。一旦设备丢失或被盗,捡到者或盗窃者就很容易获取我们最私密的信息,从而使我们面临身份被盗用、金钱诈骗甚至人身伤害等风险。  

在这些情况下,加密机制可以为我们提供保护。经过加密的讯息在网络传输过程中即使被拦截,拦截方也无法理解其中的内容。此类讯息称为“密文”,而未经加密的讯息则是以“明文”形式传输的。对于设备加密,如果没有为加密的设备进行解密所需的  PIN 码或密码,不轨之徒就无法获取手机上的内容,而只能彻底清空设备。丢失数据固然令人痛心,但至少好过身份被盗用。

有哪些类型的加密?

在传输期间加密,可保护从最终用户到第三方服务器的信息流。例如,当您在购物网站上输入信用卡凭据时,安全的连接有助于保护您的信息不会被第三方中途拦截。只有您和连接到的服务器可以解密这些信息。

端到端加密,指的是只有发送方和接收方持有用于加密和解密讯息的密钥。即使是负责控制用户讯息传输系统的服务提供商,也无法获取讯息的实际内容。

静态时加密,有助于保护未处于传输状态的信息。例如,计算机中的硬盘可以使用静态时加密机制,以确保在计算机被盗后盗窃者无法获取其中的文件。

什么是证书授权中心?

证书授权中心 (CA) 是指向网站运营商签发数字证书的组织。操作系统(例如 Mac OS X 和 Windows)和网络浏览器(例如  Chrome、Firefox、Safari)会预加载一系列可信的根授权中心。新型操作系统通常会随附超过 200 个可信 CA,其中部分 CA  由政府管理。网络浏览器对每个 CA 的信任程度是相同的。此外,许多 CA 还会委托中间 CA 来签发证书。

什么是证书?

当您通过安全连接 (HTTPS) 访问某个网站时,该网站会向浏览器提供数字证书。此证书用于识别该网站的主机名,由已验证网站所有者的证书授权中心 (CA) 签发。只要用户信任相应的 CA,便可信任证书中提供的身份证明。

证书透明度

为什么 Certificate Transparency 非常重要?

当前模式要求所有用户都必须相信,数百个 CA  组织在为任何网站签发证书时不会出现任何错误。但在有些情况下,人为错误或假冒行为可能会导致误发证书。Certificate  Transparency (CT)  改变了签发流程,新流程规定:证书必须记录到可公开验证、不可篡改且只能附加内容的日志中,用户的网络浏览器才会将其视为有效。通过要求将证书记录到这些公开的  CT  日志中,任何感兴趣的相关方都可以查看由授权中心签发的所有证书。这能够促使授权中心在签发证书时更加负责,从而有助于形成一个更可靠的系统。最终,如果使用  HTTPS 的某个网站的证书未记录到 CT 日志中,那么当用户访问该网站时,浏览器可能不会显示安全连接挂锁图标。

请注意,只有负责指定网域的组织才知道签发的哪些证书已获授权。如果证书未获授权,网域用户应与签发证书的 CA 联系,以确定应采取的适当措施。

什么是 Certificate Transparency 日志?

Certificate Transparency 日志是采用 RFC 6962 的服务器,允许任何相关方提交由广受信任的 CA 签发的证书。一旦有日志接受了某个证书,该日志的加密属性即可保证相应条目永远不会被移除或修改。

此处显示的证书来自哪里?

透明度报告中的证书是从一系列有效 Certificate Transparency 日志中获取的。这些日志中的许多证书是由 CA 在签发流程期间提交的。此外,我们还添加了 Google 在将网页编入索引时遇到的证书。网站所有者可以在此网站中搜索自己所控制的域名,以确保没有针对其网域误发证书的情况。

为什么我的证书没有显示在此处?

证书记录到至少一个 CT 日志后,就会显示在此处。您可以将自己的证书提交到某个日志,如果不行的话,您可能需要与 CA 联系。技术用户可以使用相关工具(例如 https://certificate-transparency.org 上提供的开放源代码工具)自行将证书提交到日志。

为什么有些网站有多个证书签发方?

许多大型组织会使用多个 CA 来满足各种各样的需求,其中可能包括合同义务、实施考虑事项和费用。

为什么有些证书列有多个 DNS 名称?

许多组织会选择签发可在多个网站使用的单一证书。例如,大型网站经常会为其资源使用多个子网域(如 www.google.com、mail.google.com、accounts.google.com),但会以单一证书指定所有这些子网域。




回复

使用道具 举报

8

主题

46

帖子

256

积分

中级会员

Rank: 3Rank: 3

积分
256
 楼主| 发表于 2021-3-4 21:17:12 | 显示全部楼层
本帖最后由 Mint97 于 2021-3-4 21:24 编辑


第六章 powershell攻击指南
目标:了解powershell;知道powershell的常用命令

复习:
渗透测试:为了证明网络防御按照预期计划正常运行而提供的一种机制。能够独立的检查网络策略
特点:通过模拟恶意黑客的攻击方法
一、powersher
在渗透测试中,powershell是不能忽略的,具有灵活性和功能化管理windows系统的能力。
Windows PowerShell 是一种命令行外壳程序和脚本环境,使命令行用户和脚本编写者可以利用 .NET Framework的强大功能。一旦攻击者可以在一台计算机上运行代码,他们就会下载powers hell脚本文件(.psl)到磁盘中执行,甚至无需写到磁盘中执行,它可以直接在内存中运行,也可以把powershell看作命令行提示符cud.exe的扩充。
Powershell想要.NET环境的支持,同时支持.NET对象,有一下优点:
1、windows7以上的操作系统默认安装
2、powershell脚本可以运行在内存中,不需要写入磁盘
3、可以从另一个系统中下载powershell脚本并执行
4、目前很多工具都是基于powershell开发的
5、很多安全软件并不能检测到powershell的活动
6、cmd.exe通常会被阻止运行,但是powershell不会
7、可以用来管理活动目录

二、powershell的基本概念

1、PS1文件
一个PowerShell脚本其实就是一个简单的文本文件,这个文件包含了一系列PowerShell命令,每个命令显示为独立的一行,对于被视为PowerShell脚本的文本文件,它的文件名需要使用.PS1扩展。
2、执行权限
为防止恶意脚本的执行,PowerShell有一个执行策略,默认情况下,这个执行策略被设为受限的(Restricted),意味着PowerShell脚本无法执行,你可以使用下面的cmdlet命令确定当前的执行策略:
Get-ExecutionPolicy 你可以选择使用的执行策略有:
Restricted -脚本不能运行。 RemoteSigned - 本地创建的脚本可以运行,但从网上下载的脚本不能运行(除非它们拥有由受信任的发布者签署的数字签名)。 AllSigned – 仅当脚本由受信任的发布者签名才能运行。 Unrestricted –脚本执行不受限制,不管来自哪里,也不管它们是否有签名。
你可以使用下面的cmdlet命令设置PowerShell的执行策略:
Set-ExecutionPolicy <policy name>
3、运行脚本
如果你想从命令行运行一个可执行文件,多年来一个永恒不变的方法是,在命令行转到该执行文件所在的位置,然后键入该执行文件的名称,但这个古老的方法现在却不能适用于PowerShell可执行脚本了。
如果你想执行一个PowerShell脚本,通常必须键入完整的路径和文件名,例如,假设你要运行一个名为a.ps1的脚本,你可以键入:
C:\Scripts\aps1 最大的例外是,如果PowerShell脚本文件刚好位于你的系统目录中,那么你可以直接在命令提示符后键入脚本文件名即可运行,如:
.\a.ps1 注意前面需要加上.\,这和Linux下执行Shell脚本的方法如出一辙。
4、管道
管道的作用是将一个命令的输出作为另一个命令的输入,两个命令(或cmdlet)之间只需要用管道符号(|)连接即可。
为了帮助你了解管道是如何工作的,我们以一个例子进行说明,假设你想创建运行在服务器上的进程列表,并按进程的ID号进行排序,可以使用Get-Process cmdlet命令获得进程列表,但默认情况下列表不会排序,如果将这个cmdlet命令的输出用管道输送给Sort-Object ID命令,进程列表将会按进程ID号进行排序,如:
Get-Process | Sort-Object ID
三、powershell的常用命令

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|安全矩阵

GMT+8, 2024-5-10 09:06 , Processed in 0.022634 second(s), 17 queries .

Powered by Discuz! X4.0

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表