
PHP
mazhaer
生命如此艰难,起来反抗吧
展开
-
php的设计原则:单一职责原则
单一职责原则(SRP:Single responsibility principle)又称单一功能原则定义:不要存在多于一个导致类变更的原因。通俗的说,即一个类只负责一项职责。问题由来:类T负责两个不同的职责:职责P1,职责P2。当由于职责P1需求发生改变而需要修改类T时,有可能会导致原本运行正常的职责P2功能发生故障。解决方案:遵循单一职责原则。分别建立两个类T1、T2,使T1完成职...转载 2019-12-07 11:06:49 · 299 阅读 · 0 评论 -
系统的讲解 - PHP 接口签名验证
目录概览 常用验证 单向散列加密 对称加密 非对称加密 密钥安全管理 接口调试工具 在线接口文档 扩展 小结概览工作中,我们时刻都会和接口打交道,有的是调取他人的接口,有的是为他人提供接口,在这过程中肯定都离不开签名验证。在设计签名验证的时候,一定要满足以下几点:可变性:每次的签名必须是不一样的。 时效性:每次请求的时效性,过期作废。 唯一性:每次的签...转载 2019-11-14 12:08:23 · 157 阅读 · 0 评论 -
前后端的接口验证问题
问题通常我们在h5前端调用后台接口时,一般是ajax,那么接口的安全成了一个问题。这里可以肯定的说,前端调用的接口一定要验证!然后剖析了微信网页版、京东网页版这些,也都是通过接口的形势绑定数据,所以在进行前端开发时,除了直接后台模板绑定,比如dotnet的MVC,java的springMVC这些。前端和后端采用接口访问时的调用验证机制(基于JWT的前后端验证)JWT主要实现的T...转载 2019-11-14 09:33:56 · 1213 阅读 · 0 评论 -
web访问安全漏洞:XSS攻击 ,CSRF攻击
XSS攻击XSS攻击简介跨站脚本攻击(XSS),英文全称 Cross Site Script, 是Web安全头号大敌。XSS攻击,一般是指黑客通过在网页中注入恶意脚本,当用户浏览网页时,恶意脚本执行,控制用户浏览器行为的一种攻击方式。其中,XSS攻击通常分为反射型XSS、存储型XSS、DOM Based XSS三种。可以通过以下例子看看XSS攻击是如何产生的。一个简单的例子本地服...转载 2019-11-09 11:33:37 · 339 阅读 · 0 评论 -
php 深入理解addslashes函数
php addslashes函数对于很多人来说并不陌生,但很大部分人只是了解皮毛,只知道addslashes函数是在特定字符前面加上反斜杠,本文章将带大家深入理解php addslashes函数的使用方法。php addslashes函数的作用是在预定义的字符前面加上反斜杠,这些预定义字符包括: 单引号(') 双引号(") 反斜杠(\) NULLaddsl...转载 2019-11-09 08:45:16 · 622 阅读 · 0 评论 -
get_magic_quotes_gpc 是做什么的,为何php5.4以上被移除了?
本函数功能:get_magic_quotes_gpc — 获取当前 magic_quotes_gpc 的配置选项设置,这个是magic_quotes_gpc在php.ini里面的配置选项,在运行时设置将不会成功。如果设置了这个选项,那么php解析器就会自动为POST、GET、COOKIE过来的数据增加转义字符"\"。为什么要有这个选项?增加转义符最主要的目的就是为了防止包含sql注...转载 2019-11-09 00:22:57 · 1947 阅读 · 0 评论 -
php错误处理之错误记录日志
在一些公司里面,有专门的日志收集系统,日志收集系统会在背后默默的帮你收集错误、警告、提示。也有些公司没有专门的日志收集系统,通过文件来记录服务器当中的运行日志。其中:PHP的错误,警告这些是必须要收集的。那么问题来了,不让用户看到,设置好错误报告级别,如何讲错误收集到日志系统中呢?这里需要使用到php.ini的相关配置项,这两个配置项为:参数 配置项 说明 lo...转载 2019-11-08 16:05:38 · 335 阅读 · 0 评论 -
正确使用cookie中的domain
domain的含义为域假设有两个域名a.b.e.f.com.cn 以下用域名1指代此域名c.d.e.f.com.cn 以下用域名2指代此域名在域名中,所有域名进行分级,也就是说域名1与域名2都是f.com.cn的子域名,f.com.cn又是com.cn的子域名在域名1所使用的服务中,可以设置域名a.b.e.f.com.cnb.e.f.com.cne.f.com...转载 2019-11-08 11:18:02 · 220 阅读 · 0 评论 -
php session实现多级目录存放
当一个目录下有很多文件时,服务器的处理性能会变低,php默认的session仅仅存放在/tmp目录下,未进行分级,当有一定的访问量时,就存在性能问题了。首先,修改 php.ini的 session.save_path 选项修改如下:session.save_path = “2;/tmp/session” (去掉前面分号)表示把session存放在 “/tmp/session” 目录下,并且...转载 2019-11-08 10:20:46 · 215 阅读 · 0 评论 -
PHP 的pecl 和 phpize 以及pear 和composer 对应的关系
一门编程语言,如果想壮大,需要集全球牛笔哄哄的编程工作者共同来开发设计维护。所以一般就是一门语言的基础部分设计好后,对外开放语言扩展API:嗨,大家一起来盖房子吧! 这里提到的php语言的扩展分两种,(php本身是c语言来开发的)c语言编写的和php本身语言编辑的(就比如用php写个函数一样)。c编辑的扩展被认为是贴近语言底层的实现,而把php编辑的扩展认为是语言...原创 2019-06-03 12:01:04 · 664 阅读 · 0 评论 -
php函数学习 fopen中r和w的区别
r+: Open for reading and writing. The stream is positioned at the beginning of the file.w+:Open for reading and writing. The file is created if it does not exist, otherwise it is truncated. The strea...转载 2018-09-10 00:18:41 · 774 阅读 · 0 评论 -
php面向对象编程之关键字 clone
对象也能被“克隆”在php5中,对象的传递方式默认为引用传递,如果我们想要在内存中生成两个一样的对象或者创建一个对象的副本,这时可以使用“克隆”。通过 clone 克隆一个对象对象的复制是通过关键字 clone 来实现的。用 clone 克隆出来的对象与原对象没有任何关系,它是把原来的对象从当前的位置重新复制了一份,也就是相当于在内存中新开辟了一块空间。通过关键字 clone 可以克隆...转载 2018-08-14 15:48:39 · 233 阅读 · 0 评论 -
php中常用的算法
php相关的基础算法有四个,分别是:冒泡排序法,快速排序法,选择排序法,插入排序法1:冒泡排序法介绍:冒泡排序是一种简单的排序算法。它重复地走访过要排序的数列,依次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越来越小的元素会经由交换慢慢"浮"到数列的顶端。步骤:①:比较相邻的元素。如果第一个比第...原创 2018-06-25 11:53:37 · 337 阅读 · 0 评论 -
PHP面试题总结
1:mvc是是什么?相互间有什么关系?mvc是一种设计模式,m(model)模型层,v(view)视图层,c(controller)逻辑层客户端发起请求->控制器处理请求,如果用到数据则请求模型层->返回视图层2:oop是什么?oop是面向对象编程,面向对象编程是一种计算机编程架构,与之相对的是面向过程编程oop具有3大特点:①封装性:就是信息隐藏,就是实现类中的public,prot...原创 2018-06-21 20:18:28 · 373 阅读 · 0 评论 -
php高级技能之消息队列
1:消息队列的概念原理和场景2:解耦案例,队列处理订单系统和配送系统3:流量晓峰案例:redis的list类型实现秒杀4:rabbitMQ:更专业的消息队列系统实现方案1:消息队列是什么?...原创 2018-06-28 13:07:48 · 449 阅读 · 0 评论 -
laravel学习问题1:laravel在中间件内生成参数并且传递到控制器2种姿势
姿势1使用$request->attributes->add($arr)方法Demo:注册中间件这部分就不说了 主要说用法class MidParams //中间件{ public function handle($request, Closure $next) { $mid_params = ['mid_params'=>'t...转载 2018-07-16 23:47:10 · 2834 阅读 · 0 评论 -
一种web接口命名定义
开头直接给网站,阮一峰老师介绍东西就是到位:http://www.ruanyifeng.com/blog/2011/09/restful.html当然了规范归规范,但是大家在实际工作中,为了方便自己项目的开发,会结合自己情况,对规范做出调整形成自己的接口模式,毕竟没有硬性要求。下面介绍一下自己一套定义方式: ①:定义两种请求类型:get(查询),post(增,删,改)②:路径命...原创 2018-07-26 09:22:21 · 5216 阅读 · 2 评论 -
php面向对象编程之关键字 final
引用手册中的话: PHP 5 新增了一个 final 关键字。如果父类中的方法被声明为 final,则子类无法覆盖该方法。如果一个类被声明为 final,则不能被继承。那么意思说如果有一个final修饰了一个方法,那么我们在继承的类里面就不能重写他,或者说覆盖他。那么我们依然继承了这个方法。我们看以下代码:<?phpclass BaseClass { public func...转载 2018-08-14 10:36:51 · 230 阅读 · 0 评论 -
php面向对象编程之3大特性 封装、继承、多态
面向对象的三个基本特征是:封装、继承、多态。封装封装最好理解了。封装是面向对象的特征之一,是对象和类概念的主要特性。封装,也就是把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操作,对不可信的进行信息隐藏。继承面向对象编程 (OOP) 语言的一个主要功能就是“继承”。继承是指这样一种能力:它可以使用现有类的所有功能,并在无需重新编写原来的类的情况下...转载 2018-08-14 11:48:31 · 340 阅读 · 0 评论 -
php面向对象编程之关键字 abstract和interface
一、 抽象类abstractclass1 .抽象类是指在 class 前加了 abstract 关键字且存在抽象方法(在类方法 function 关键字前加了 abstract 关键字)的类。2 .抽象类不能被直接实例化。抽象类中只定义(或部分实现)子类需要的方法。子类可以通过继承抽象类并通过实现抽象类中的所有抽象方法,使抽象类具体化。3 .如果子类需要实例化,前提是它实现了抽象类中的...转载 2018-08-14 12:16:33 · 376 阅读 · 0 评论