- 博客(51)
- 收藏
- 关注
原创 CodeQL在代码审计中的应用
CodeQL是一种基于静态分析的程序分析工具,由GitHub开发和维护。截止到此刻,CodeQL在Github上已经有超过6100个Star。它可以用于发现代码中的漏洞、代码质量问题和安全问题。CodeQL使用了一种特殊的编程语言QL(查询语言),可以帮助开发人员进行更加高效和精确的代码分析。CodeQL的核心思想是使用数据流分析技术去发现代码中的潜在安全问题和漏洞,它可以在编译时或者运行时对代码进行分析,找出潜在的程序缺陷和安全隐患。
2023-07-07 17:32:34
1285
原创 安全左移DevSecOps开源工具链建设
开发安全相关技术和产品受到越来越多的关注。行业共识认为,应用系统上线之后进行软件漏洞修复,其修复成本是需求设计阶段修复成本的几十倍。因此,在开发环节,引入相应的安全工具,能够有效的降低漏洞的修复成本,实现安全的左移。本文会持续研究安全开发相关工具,使用开源工具建设安全开发体系。
2023-06-13 17:20:39
1784
原创 Go Web实战连载二 Golang程序结构
命名Go语言中的函数名、变量名、常量名、类型名、语句标号和包名等所有的命名,都遵循一个简单的命名规则:一个名字必须以一个字母(Unicode字母)或下划线开头,后面可以跟任意数量的字母、数字或下划线。大写字母和小写字母是不同的:heapSort和Heapsort是两个不同的名字。Go语言中类似if和switch的关键字有25个;关键字不能用于自定义名字,只能在特定语法结构中使用。break default func interface selectcase
2020-05-26 18:30:19
263
原创 WSL安装Go1.14开发环境
WSLWindows10系统运行ubuntu系统,wsl安装参考前期教程终端工具推荐使用MobaXterm ,此终端可以直接连接WSL,从此Xshell是路人下载Go安装包https://studygolang.com/dl (下载编译过的文件)配置Go环境解压文件 tar -zxvf go1.14.3.linux-amd64.tar.gz -C /usr/local/修改 .bashrc文件export GOROOT=/usr/local/go #设置为go安装的路径,有
2020-05-24 23:20:37
2072
原创 ubuntun安装php
安装nginx sudo apt install nginx 安装php sudo apt install php7.2配置nginx虚拟主机server{ listen 80; server_name api.example.com; index index.php index.html; root /www/wwwroot; loc...
2020-04-02 11:23:43
224
原创 PHP设计模式之单例模式
设计模式随着项目的扩大,维护需要很大的成本,为了应对各种变动会出现设计模式。设计模式的宗旨是重用;目的是建立对象间的关联;提供了让代码之间松耦合的各种方案单例模式class Pre{ private $props = array(); private static $instance; public static function getIn(){ ...
2020-01-06 22:19:20
151
原创 mysql金钱字段decimal
新建表decimalsCREATE TABLE `decimals` ( `id` int(11) NOT NULL, `name` varchar(255) DEFAULT NULL, `c1` float(10,2) DEFAULT NULL, `c2` decimal(10,2) DEFAULT NULL, `c3` float(10,0) DEFAULT NULL,...
2019-12-23 22:01:31
1481
原创 斐波那契数列应用
什么是斐波那契数列斐波那契数列指的是这样一个数列 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144这个数列从第3项开始,每一项都等于前两项之和台阶问题有一段楼梯有10级台阶,规定每一步只能跨一级或两级,要登上第10级台阶有几种不同的走法?这就是一个斐波那契数列:登上第一级台阶有一种登法;登上两级台阶,有两种登法;登上三级台阶,有三种登法;登上四级台阶,有...
2019-12-08 00:58:27
464
原创 PDO防止sql注入原理
PDO预处理$pdo = new PDO("mysql:host=localhost;dbname=test","user","pwd");$sql = "insert into user(name,age) values(?,?)"; // ?号的方式$pdo->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);//PDO有一项参数...
2019-12-07 23:57:58
555
原创 mysql慢查询
mysql慢查询参数配置MySQL的慢查询,全名是慢查询日志,是MySQL提供的一种日志记录,用来记录在MySQL中响应时间超过阀值的语句。具体环境中,运行时间超过long_query_time值的SQL语句,则会被记录到慢查询日志中。long_query_time的默认值为10,意思是记录运行10秒以上的语句。默认情况下,MySQL数据库并不启动慢查询日志,需要手动来设置这个参数。修改...
2019-12-05 21:48:00
241
原创 php反射API
php反射PHP 5提供了一个完整的反射API,可以对类、接口、函数、方法和扩展进行反向工程找到一个对象出发地和来源的一个过程,通俗来讲就是可以根据这个对象,知道它所属的类,拥有哪些方法。PHP类 <?php class person{ public $name; public $age; public $sex; public fu...
2019-12-01 23:03:51
177
原创 Leetcode Two Sum
题目在数组中找到 2 个数之和等于给定值的数字,结果返回 2 个数字在数组中的下标。Given nums = [2, 7, 11, 15], target = 9,Because nums[0] + nums[1] = 2 + 7 = 9,return [0, 1].go 1 package main 2 3 import "fmt" 4 5 func main(...
2019-09-16 13:10:17
218
原创 PHP世界的Go语言(一)
web开发利器之phpPHP主要用于Web开发,LNMP的技术架构是众多中小互联网公司的选择。php目前有众多成熟的框架,能够快速进行web开发。用户访问我们的网站、App、微信小程序本质上都是在与Web打交道。Web开发的本质就是将用户发送的请求处理,再回传给用户。这个简单的过程基于http协议。使用php开发主要专注业务逻辑处理,网络方面有nginx进行处理,数据库使用mysql,缓存有re...
2019-09-04 17:46:41
306
原创 php生命周期
问题php的生命周期是什么?每个阶段做了什么?为什么会有FPM?cli执行代码和请求经过fpm执行有什么区别?swoole为什么可以不使用fpmnginx配置php-fpm的两种方式思考ingphp五个生命周期php_module_startup:模块初始化php_request_startup:请求初始化php_execute_script:执行脚本php_reque...
2019-08-14 15:59:32
300
原创 go1.12安装
初识go语言随着软件规模的不断扩大,诸多的学者和谷歌的开发者们在公司内部的软件开发过程中开始经历大量的挫折,在诸多问题上都不能给出令人满意的解决方案,尤其是在使用 C++ 来开发大型的服务端软件时,情况更是不容乐观。由于二进制文件一般都是非常巨大的,因此需要耗费大量的时间在编译这些文件上,同时编程语言的设计思想也已经非常陈旧,这些情况都充分证明了现有的编程语言已不符合时下的生产环境。尽管硬件在...
2019-08-09 14:57:59
751
原创 PHP设计模式单例模式
class Pre{ private $props = array(); private static $instance; //防止使用 new 创建多个实例 private function __construct() { } public static function getIn() { if(empt...
2019-07-03 16:05:12
131
原创 docker搭建RabbitMQ并使用PHP操作
搭建RabbitMQ开发环境 LNMPdocker run -d --hostname my-rabbit -p 5672:5672 -p 15672:15672 rabbitmq:3.7.3-managementdocker ps 查看RabbitMQ是否启动访问RabbitMQ界面容器运行正常,使用http://127.0.0.1:15672访问rabbit控制台默认账号gu...
2019-06-21 16:11:20
1144
1
原创 使用swoole实现价值一个亿的AI核心代码
环境配置LNMP环境 安装swoole扩展服务端代码使用swoole提供的websocket的服务<?phpclass Chat{ const HOST = '0.0.0.0';//ip地址 0.0.0.0代表接受所有ip的访问 const PART = 9502;//端口号 private $server = null;//单例存放websock...
2019-06-20 16:04:30
401
原创 搭建php Docker环境
创建Nginx容器docker pull nginxdocker run -p 8081:80 --name mynginx1 -v /data/www/wwwroot/project:/home -v /data/www/wwwroot/conf:/etc/nginx/conf.d -d nginx-p 代表着把容器中的80端口绑定到宿主机的8081端口,所以以后访问宿主机的80端口...
2019-06-13 14:05:33
196
原创 使用docker搭建nginx负载均衡
创建nginx容器首先本地linux环境中已经存在编译安装好的nginxdocker pull nginxdocker run --name adminNginx4 -d -p 8087:80 -v /data/www/html1:/usr/share/nginx/html docker.io/nginxdocker run --name adminNg...
2019-06-12 16:00:41
901
原创 docker搭建ElasticSearch 环境配合mysql搭建搜索引擎
ElasticSearch 坏境搭建拉取镜像docker pull docker.elastic.co/elasticsearch/elasticsearch:6.3.2运行容器docker run -d --name es -p 9200:9200 -p 9300:9300 -e “discovery.type=single-node” docker.elastic.co/elasti...
2019-06-11 18:12:59
738
原创 PHP socket编程
SocketSocket并不是一个协议,本质上说Socket是对 TCP/IP 协议的封装,它是一组接口,在设计模式中,Socket 其实就是一个门面(facade)模式,它把复杂的 TCP/IP 协议族隐藏在 Socket 接口后面,对用户来说,一组简单的接口就是全部,让 Socket 去组织数据,以符合指定的协议。php Socket虽然PHP的强项是处理文本,一般用来写网页和h...
2019-06-05 15:05:55
727
原创 PHP编程指南系列基本语法
前言php是世界上最好的语言本教程使用LNMP开发环境环境搭建教程第一个php程序<?php echo "hello world";
2019-06-01 23:46:32
169
原创 Laravel快速开发后端API指引一
laravel安装1.环境要求安装LNMP开发环境,推荐使用宝塔2.composer global require “laravel/installer”3.如果缺少vendor文件,使用composer install4.应用程序生成秘钥 php artisan key:generatelaravel配置文件复制项目目录下的配置文件 cp .env.example .env...
2019-05-30 10:38:21
6513
原创 Laravel快速开发后端API数据迁移
Laravel数据迁移生成数据迁移php artisan make:migration create_tests_table新的迁移文件会被放置在 database/migrations 目录中。每个迁移文件的名称都包含了一个时间戳,以便让 Laravel 确认迁移的顺序生成的迁移文件如下所示<?phpuse Illuminate\Support\Facades\Schema...
2019-05-30 10:03:32
251
原创 php c扩展开发初试
开发环境linux系统php源码生成c扩展并安装php ./ext_skel.php --ext gradytestcd gradytest/usr/local/php7/bin/phpize./configure --with-php-config=/usr/local/php7/bin/php-configmakemake install修改php.ini 加入...
2019-05-23 14:15:39
236
原创 predis包和phpredis扩展的区别是什么
问题predis好神奇啊,居然不用扩展就可以直接连接redis,他底层是用什么实现的?(我看了一下他的源代码,根本看不懂啊),听说phpredis是扩展实现所以性能比predis更高吗?但是Laravel官方却推荐的是predis,请问一下他们之间的区别是什么?性能差距大不大?...
2019-04-11 11:46:40
3190
原创 Swoole安装使用
Swoole安装下载源码git clone git@github.com:swoole/swoole-src.gitcd swoole-src-masterphpize./configure --with-php-config=/www/server/php/71/bin/php_configmakemake installSwoole TCP ServerService&l...
2019-04-09 13:50:02
158
原创 百度echarts饼图百分比的计算规则php实现---最大余额法
最大余额法参考文章最大余额法php实现//最大余额法 public function MaxBalance() { $data = [2,3,4]; $sum = array_sum($data); $res = []; foreach ($data as $key=>$item) { ...
2019-03-28 16:05:42
777
原创 Nginx前端域名转发后端配置
开发环境宝塔搭建LNMP开发环境前端域名配置cd /www/server/panel/vhost/nginx修改配置文件www.front.admin.cc.com.confserver{ listen 80; server_name www.front.admin.cc.com; index index.php index.html index.htm...
2019-02-27 14:37:59
2638
原创 php多线程扩展pthread安装与使用
pthreads安装下载git源码 https://github.com/krakjoe/pthreadscd pthreadsphpize./configuremakemake install (may need sudo)安装过程遇到报错configure: WARNING: You will need re2c 0.13.4 or later if you ...
2018-08-28 12:01:27
2265
原创 xhprof性能分析工具
安装xhprofclone https://github.com/longxinH/xhprofcd xhprof/extension/phpize./configure makemake installphp.ini文件中添加 extension=xhprof.soxhprof分析ci框架ct 函数调用次数,wt 花费的时间,cpu 花费的 CPU 时间(微秒即百万...
2018-08-22 16:45:58
415
原创 Nginx 与 FPM 的工作机制
FPM是什么FPM 是一个 PHP 进程管理器,包含 master 进程和 worker 进程两种进程:master 进程只有一个,负责监听端口,接收来自 Web Server 的请求,而 worker 进程则一般有多个 (具体数量根据实际需要配置),每个进程内部都嵌入了一个 PHP 解释器,是 PHP 代码真正执行的地方,下图是我本机上 fpm 的进程情况,1一个 master 进程,6个 ...
2018-08-21 17:57:28
214
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人