laravel Call to undefined function Illuminate\Encryption\openssl_cipher_iv_length()

原因是没有开启openssl扩展。

不过,在windows环境下还有一个需要注意的,就是php.ini文件中extension_dir需要修改为绝对路径,

如下:

extension_dir="C:\phpstudy_pro\Extensions\php\php7.4.3nts\ext"
golang runtime: program exceeds 10000-thread limit问题解决,控制goroutines数量

这个问题是因为golang运行时最大进行中线程数限制在10000个。

可以用创建线程池的方式限制同时运行的线程数量。

比如,带有缓冲的channel。

func doThing(d interface{}){
    // 一些业务逻辑
}
func main() {
    var data [1000]int // 假设有1000   
    poolSize := runtime.NumCPU() // 获取cpu核sem := make(chan struct{}, poolSize)
    for _, d := range data {
        sem <- struct{}{}
        go func(d int){
            doThing(d)
            <-sem
        }(d)
    }
}

以上示例中,sem<- struct{}{}操作,在sem通道满的时候会暂停等待空出,因此保证里go func(d int)同时只有poolSize个。

import (
    "context"
    "golang.org/x/sync/semaphore"
)

func doThing(d interface{}){
    // 一些操作
}

func main() {
    data := [1000]int // 假设有1000个poolSize := runtime.NumCPU() // 获取cpu数核量sem := semaphore.NewWeighted(poolSize)
    for _, d := range data {
        sem.Acquire(context.Background(), 1) // 获取1个锁go func(d interface{}){
            doThing(d)
            sem.Release(1) // 释放1个锁
        }(d)
    }
}

以上示例基本思路与上一个channel缓冲示例一样,通过获取池子中的锁来控制并发数量。

laravel:Please Provide a Valid Cache Path

这种情况是原有laravel项目迁移时,文件目录没有完全迁移导致的。

主要是storage目录下的结构与原项目不同。

尝试把原项目的storage目录拷贝的迁移项目中。

Go语言教程之边写边学:如何向Prometheus发出服务器预警

为了在Go中处理HTTP客户端/服务器告警,您可以使用各种监控工具,如Prometheus和Grafana。Prometheus是一个开源监控系统,它从不同来源收集指标并将其存储在时间序列数据库中。它具有强大的查询语言,并提供灵活且可扩展的警报机制。要将Prometheus与Go一起使用,您可以使用官方的Prometheus客户端库,它提供了一种简单的方法来检测Go代码并向Prometheus公开指标。您可以使用此库来跟踪HTTP服务器/客户端的性能和其他指标,如内存使用率、CPU使用率等。

下面是如何使用Prometheus客户端库检测简单HTTP客户端的示例:

import (
    "net/http"
    "github.com/prometheus/client_golang/prometheus"
    "github.com/prometheus/client_golang/prometheus/promhttp"
)

var (
    requestsTotal = prometheus.NewCounterVec(
        prometheus.CounterOpts{
            Name: "http_requests_total",
            Help: "Number of HTTP requests processed",
        },
        []string{"method", "status_code"},
    )
)

func main() {
    http.HandleFunc("/", handler)
    http.Handle("/metrics", promhttp.Handler())

    if err := http.ListenAndServe(":8080", nil); err != nil {
        panic(err)
    }
}

func handler(w http.ResponseWriter, r *http.Request) {
    requestsTotal.With(prometheus.Labels{"method": r.Method, "status_code": "200"}).Inc()

    // your HTTP client logic here
}

在此示例中,我们使用Prometheus客户端库创建一个新的计数器向量。计数器向量计算已处理的HTTP请求数,按HTTP方法和HTTP状态代码分组。

在处理函数中,我们使用适当的标签递增requestsTotal计数器向量。我们可以使用这些标签来过滤和分组Prometheus中的指标。

最后,我们使用promhttp。Handler() 将Prometheus指标端点 /metrics暴露给我们的HTTP服务器。

您可以将Prometheus配置为根据这些指标发送告警,并为HTTP服务器/客户端设置告警规则。

laravel Sanctum 中没有添加auth的路由中,如何获取用户信息

一个接口允许游客访问,同时支持已登录用户相关的一些判断,比如是否点过赞。

此时,该接口不受路由保护,但需要获取用户信息,通常使用的$request→user(),在没有添加auth:sanctum中间件时,此时始终返回null。

以下方法可以在没有添加auth中间件的路由中获取用户信息。

$user = auth('sanctum')->user();//查询用户信息
fastadmin中给上传文件的按钮指定接口路径

通过设置data-url可以指定接口,data-url="{:url('ajax/upload')}"

<button type="button" id="faupload-local" class="btn btn-primary faupload" data-input-id="c-local" data-multiple="true" data-preview-id="p-local" data-url="{:url('ajax/upload')}"><i class="fa fa-upload"></i> {:__("Upload to local")}</button>
easyadmin中js的自定义模板方法

写法如下,需要注意的是e参数是一条数据对象,不是字段值。下面代码中e不是attachement的值。

field: 'attachement', title: 'attachement', templet: function (e) {
                            switch (e.attachement.content_type) {
                                case 'text':
                                    return e.attachement.content;
                                    break;
                                case 'image':
                                    return "<img src=\"" + e.attachement.content + "\" style=\"width:100px;height:100px;\">";
                                    break;
                                case 'video':

                                    break;
                            }
                        }
Python运算符优先级
运算符描述
lambdaLambda表达式
or布尔“或”
and布尔“与”
not x布尔“非”
in,not in成员测试
is,is not同一性测试
<,<=,>,>=,!=,==比较
|按位或
^按位异或
&按位与
<<,>>移位
+,-加法与减法
*,/,%乘法、除法与取余
+x,-x正负号
~x按位翻转
**指数
x.attribute属性参考
x[index]下标
x[index:index]寻址段
f(arguments...)函数调用
(experession,...)绑定或元组显示
[expression,...]列表显示
{key:datum,...}字典显示
'expression,...'字符串转换


 

php imagck读取pdf错误:attempt to perform an operation not allowed by the security policy PDF

这是ImageMagic中有权限配置文件,需要修改PDF相关的读写权限。

# 打开policy.xml文件

sudo nano /etc/ImageMagick-6/policy.xml

# 修改PDF相关权限,由none改为read|write

<policy domain="coder" rights="none" pattern="PDF" />

# 改为

<policy domain="coder" rights="read|write" pattern="PDF" />

 

微软开源全自动数据可视化工具 LIDA
lida

我们利用他提供的 demo 看一下,都有哪些功能。

 

1. 上传文件。

目前支持csv,json 格式

lida upload

 

2. 生成数据概要。 会生成全部变量的摘要,包括变量的行数、最小值、最大值、标准差。

lida data summary

 

3. 自动生成分析目标。 demo 里默认生成5个,可以在代码里改目标数量。

lida goal exploration

 

4. 生成可视化图表。 同步会生成 python 代码。

lida visualization generation

 

5. 微调图表。 可以在对话框里微调图表,例如更改图表标题,颜色,图例位置等。

lida modify chart

 

6. 解释图表。会生成结构化的文字解释图表内容。

lida explain the chart

 

7. 对图表进行评分;生成其他推荐的图表。数据问题,未生成。

lida evaluate the chart

 

8. 其他设置。

可以选择可视化的包,默认 seaborn,有Altair,Matplotlib,GGPlot 可选。

lida select visualization library

 

可以选择底层大模型服务,有 openai,google,cohere,huggingface 的模型可选。

lida select model

但当前版本有一个问题,其实也是当前各种开源的自动可视化工具都有的,就是生成的图表不支持中文字体,这是 python 的底层可视化包 matplotlib 导致的问题,如果是本地运行的代码,加一个字体设置就行了,但很多在线的服务难以更改。还有一个跟字体有关的问题,就是当前导入的含有中文的数据,也处理不了。 不过既然已经开源了,能折腾的大佬可以自己来改造了。

github 地址: https://github.com/microsoft/lida。

提升效率:10 个开源的前端低代码项目

最近一直在寻找低代码开源项目来学习学习~ 在这里整理一下我觉得不错的项目。

 

GOVIEW

GoView 是一个使用 Vue3 搭建的低代码数据可视化开发平台,将图表或页面元素封装为基础组件,无需编写代码即可完成业务需求。它的技术栈为:Vue3 + TypeScript4 + Vite2 + NaiveUI + ECharts5 + Axios + Pinia2 + PlopJS。

Gitee:https://gitee.com/dromara/go-view

 

vlife

企业级低代码快速开发平台,包含页面可视化配置、自定义表单、自定义报表、权限管理脚手架应用、前后端代码自动生成;主要特点是低代码开发,可实现复杂CRUD功能仅编写数据模型就能完成前后端开发。

Github:https://github.com/wwwlike/vlife

 

JeecgBoot

JeecgBoot 采用Vue3.0+TypeScript+Vite+Ant-Design-Vue等新技术方案,包括二次封装组件、utils、hooks、动态菜单、权限校验、按钮级别权限控制等功能。

Gitee:https://gitee.com/jeecg/jeecgboot-vue3

 

maku-generator

一款低代码生成器,可根据自定义模板内容,快速生成代码,实现项目的快速开发、上线,减少重复的代码编写,开发人员只需专注业务逻辑即可。

Gitee:https://gitee.com/makunet/maku-generator

 

MtBird

星搭精卫 MtBird 是一款基于 React 的低代码可视化页面生成器。帮助用户以可视化的形式搭建网页、小程序和表单等应用。

Github:https://github.com/staringos/mtbird

 

鲁班 H5

鲁班H5是基于 Vue 2 开发、通过拖拽快速生成页面的平台。类似 易企秀、Maka、百度 H5 等平台。其支持表单组件,即时倾听用户反馈,可以在后台查看和下载用户数据。包含了丰富的组件系统、支持可视化编辑、自由拖拽排版、实时预览、在线访问。支持一键导入PSD,将设计师的创意转换为 H5,快速查看效果、反馈、上线

Github:https://github.com/ly525/luban-h5

 

Seezoon Stack

Seezoon Stack 是一款基于当前最前沿的前端(Vue3 + Vite + Antdv)和后台(Spring boot)实现的低代码开发平台。以快速开发为目的,在开发速度和代码结构上做出一定取舍。项目采用主流开发框架,无论打包、编译、部署都按着大公司的标准完成并不断逐步完善。

Gitee:https://toscode.gitee.com/huangdf/seezoon-stack

 

Variant Form

Variant Form 是一款高效的Vue低代码表单,可视化设计,一键生成源码。其特性如下:

  • 拖拽式可视化表单设计;
  • 支持PC、Pad、H5三种布局;
  • 支持运行时动态加载表单;
  • 支持表单复杂交互控制;
  • 支持自定义CSS样式;
  • 支持自定义校验逻辑;
  • 支持国际化多语言;
  • 兼容IE 11浏览器;
  • 可导出Vue组件、HTML源码;
  • 可导出Vue的SFC单文件组件;、
  • 支持开发自定义组件;
  • 支持响应式自适应布局;
  • 支持VS Code插件;

Github:https://github.com/vform666/variant-form

 

ng-form

ng-form 是一个基于vue+element ui实现动态表单组件,通过拖拽组件到面板即可实现一个表单。支持各个组件的动态隐藏显示,动态表格弹窗式维护。

Gitee:https://gitee.com/jjxliu306/ng-form-element

 

h5-factory

h5-factory 是一个h5专题页面可视化编辑工具,拖拽编辑,灵活切换,一键生成html文件。

Github:https://github.com/yangyuji/h5-factory

值得研究学习的十大开源内网工具

fscan


作者:shadow1ng

开发语言:Golang

github star:6.4k

https://github.com/shadow1ng/fscan

一款内网综合扫描工具,方便一键自动化、全方位漏扫扫描。支持主机存活探测、端口扫描、常见服务的爆破、ms17010、redis批量写公钥、计划任务反弹shell、读取win网卡信息、web指纹识别、web漏洞扫描、netbios探测、域控识别等功能。

 

antSword


作者:AntSwordProject

开发语言:Nodejs

github star:2.8k

https://github.com/AntSwordProject/antSword

中国蚁剑是一款开源的跨平台网站管理工具。

 

Stowaway


作者:ph4ntonn

开发语言:Golang

github star:2.1k

https://github.com/ph4ntonn/Stowaway

Stowaway 是一款多级代理工具,可将外部流量通过多个节点代理至内网,突破内网访问限制。Stowaway 可以方便渗透测试人员通过多级跳跃,从外部dmz等一系列区域逐步深入核心网络;Stowaway 除了流量转发功能,还提供了端口复用、ssh隧道,流量伪装等专为渗透测试人员所用的功能。

 

shellcodeloader


作者:m0ngo0se@knownsec404

开发语言:C++

github star:1.5k

https://github.com/knownsec/shellcodeloader

Windows平台的shellcode免杀加载器,自带多种加载方式:32位自带13种加载方式,64位自带12种加载方式。

 

ServerScan


作者:Adminisme

开发语言:Golang

github star:1.4k

https://github.com/Adminisme/ServerScan

一款使用Golang开发且适用于攻防演习内网横向信息收集的高并发网络扫描、服务探测工具。

 

Platypus


作者:WangYihang

开发语言:Golang

github star:1.3k

https://github.com/WangYihang/Platypus

Platypus 是一个基于终端与 Web UI 交互式的反弹 Shell 会话管理工具。在实际的渗透测试中,为了解决 Netcat/Socat 等工具在文件传输、多会话管理方面的不足。该工具在多会话管理的基础上增加了在渗透测试中更加有用的功能,可以更方便灵活地对反弹 Shell 会话进行管理。


WMIHACKER


作者:rootclay

开发语言:VBScript

github star:1.2k

https://github.com/rootclay/WMIHACKER

WMIHACKER是一款免杀横向渗透远程命令执行工具,常见的WMIEXEC、PSEXEC执行命令是创建服务或调用Win32_Process.create执行命令,这些方式都已经被杀软100%拦截,通过改造出的WMIHACKER可免杀横向移动。并且在企业网络目前阻断445端口严重的情况下可以无需445端口进行横向移动,效率高且不易被检测。

 

rakshasa


作者:Mob2003

开发语言:Golang

github star:828

https://github.com/Mob2003/rakshasa

rakshasa是一个使用Go语言编写的强大多级代理工具,专为实现多级代理,内网穿透而设计。它可以在节点群里面任意两个节点之间转发TCP请求和响应,同时支持socks5代理,http代理,并且可以引入外部http、socks5代理池,自动切换请求IP。

 

As-Exploits


作者:yzddmr6

开发语言:JavaScript

github star:725

https://github.com/yzddmr6/As-Exploits

中国蚁剑后渗透框架。

 

PortForward


作者:knownsec404

开发语言:Golang

github star:97

https://github.com/knownsec/PortForward

PortForward 是使用 Golang 进行开发的端口转发工具,解决在某些场景下内外网无法互通的问题。

2023年需要关注的15个web3开源项目
  • Lenster:Web 3 社交媒体应用
  • Lenstube:Web 3  视频共享社交媒体平台
  • Web3UI Kit:轻量级的 web3 UI 组件
  • Web3Modal:为 Web3 DApp 提供简单易用的登录和交互体验
  • web3.js:提供与以太坊区块链进行交互的API
  • ethers.js:用于与以太坊节点进行交互
  • wagmi:React Hook 的集合,包含了与以太坊交互所需的一切
  • Web3-react:用于 React 应用的库,旨在使 DApp 的开发更加容易
  • RainbowKit:用于将钱包连接添加到 dapp
  • Foundry:用于以太坊应用程序开发的快速、便携和模块化工具包
  • DeFi Developer Road Map:去中心化金融开发者的学习和技能路线图
  • FREE Web3 resources:Web3 学习资源
  • Awesome Web 3:一组很棒的 Web 3 学习资源
  • Awesome Ethereum:一组很棒的以太坊学习资源

Lenster

Lenster 是一款使用 Lens Protocol 协议构建的去中心化且无需许可的 Web 3 社交媒体应用,允许连接 Web3 钱包和使用 Lens 来登陆。在 Lenster 可以发布帖子、浏览朋友圈和探索内容趋势,还可以直接搜索相关内容帖子或者用户 Profiles。

https://github.com/lensterxyz/lenster

 

Lenstube

Lenstube 是一个基于 Lens Protocol 构建的开源视频共享社交媒体平台,由 Livepeer 和 Vercel 提供支持,创作者上传视频时可以选择视频收集对象,限制收集人数、视频类别以及设置收集费用和推荐费用,也可以直接将发布的视频转发同步至 Lens。

https://github.com/lenstube-xyz/lenstube

 

Embark

Embark 是一个用于轻松开发和部署 Serverless 去中心化应用(DApps)的框架。Embark 目前集成了 EVM 区块链(以太坊)、去中心化存储(IPFS) 和去中心化通信平台(Whisper 和 Orbit),部署支持 Swarm。

https://github.com/embarklabs/embark

 

Web3UI Kit

Web3Modal 是一个 JavaScript 库,旨在为 Web3(以太坊、BSC、Polygon 等区块链)DApp 提供简单易用的登录和交互体验。它支持多种钱包提供商,如 MetaMask、WalletConnect、Portis、Trezor、Ledger 等,并且能够跨设备、浏览器和平台提供一致的用户体验。

https://github.com/web3ui/web3uikit

 

Web3Modal

Web3Modal 是一个多功能的库,可以轻松地将用户与 Dapp 连接起来并开始与区块链交互。可以在一个地方管理多链钱包连接流。在设计时同时考虑到开发人员和用户,它易于集成和定制,带来独特的体验。

https://github.com/WalletConnect/web3modal

 

web3.js

web3.js 是以太坊官方的 JavaScript 库,提供了与以太坊区块链(和基于以太坊的其他区块链)进行交互的API。通过 web3.js,开发者可以从他们的应用中与区块链进行交互,例如读取账户信息、创建和管理智能合约、发送交易等。该库不仅限于浏览器环境,也可以在 node.js 环境中使用。Web3.js 支持以太坊 JSON-RPC API 的所有功能,并且提供了一些高级功能,如合约 ABIs 的自动解析、以太坊 gas 费用的自动计算和签名交易的功能。

Github:https://github.com/web3/web3.js

 

ethers.js

ethers.js 是一个完整的以太坊开发库,提供了一套易于使用的 API,用于在 Web3 浏览器和 node.js 环境中进行操作。ethers.js 可以用于与以太坊节点进行交互,例如读取账户余额和发送交易,还可以部署、管理和调用智能合约。与 web3.js 不同的是,ethers.js 专注于提供简洁、易于理解和安全的 API。ethers.js 还提供了许多高级功能,如 EIP-1193 支持、钱包管理、大数据签名、批处理交易等。它还提供了一组基本的安全标准,以确保您的应用程序和以太坊网络之间的通信是安全且可靠的。

https://github.com/ethers-io/ethers.js

 

wagmi

wagmi 是一个 React Hook 的集合,包含了你与以太坊交互所需的一切。wagmi 使连接钱包、显示 ENS 和余额信息、签署消息、与合约交互等变得简单——所有这些都有缓存、重复请求降重和持久化。

wagmi 具有以下特点:

  • 20 多个 Hook 用于处理 Wallet、ENS、Contract、Transaction、Signature 等
  • 内置 MetaMask、WalletConnect、Coinbase Wallet 和 Injected 的钱包连接器
  • 缓存、重复请求降重、multicall、批量处理和持久化
  • 基于钱包、区块和网络的变化自动刷新数据
  • 支持 Multicall
  • 支持临时分叉以太坊网络运行的测试套件
  • 支持 TypeScript(可以从 ABI 和 EIP-712 类型数据中推断类型)
  • 大量的文档和示例
  • 被 ENS, Foundation, Sushi 等使用。

https://github.com/wagmi-dev/wagmi

 

Web3-react

Web3-react 是一个用于 React 应用的开源库,旨在使 DApp 的开发更加容易。它提供了一套用于管理 Web3 实例的 React 组件和钩子,以及用于获取用户账户、网络等信息的功能。Web3-react 还可以轻松处理不同的 Web3 提供商,例如 MetaMask、WalletConnect、Portis 等。

Web3-react 提供了一个标准接口,用于与以太坊网络进行交互,使开发者能够专注于应用程序的逻辑和界面开发,而不必关心底层实现细节。它还提供了一些其他的高级功能,如支持 EIP-1193 标准、处理多个 Web3 实例和清除缓存等。

https://github.com/Uniswap/web3-react

 

RainbowKit

RainbowKit 是一个 React 库,可以轻松地将钱包连接添加到 dapp。该工具可简化开发人员在开发DApp时需要进行的多钱包、多网络连接支持工作。RainbowKit支持所有EVM兼容链。

https://github.com/rainbow-me/rainbowkit

 

Foundry

Foundry 是一款用 Rust 编写的用于以太坊应用程序开发的快速、便携和模块化工具包。它包括:

  • Forge:以太坊测试框架(如 Truffle、Hardhat 和 DappTools)。
  • Cast:用于与 EVM 智能合约交互,发送交易和获取链数据。
  • Anvil:本地以太坊节点,类似于 Ganache、Hardhat Network。
  • Chisel:快速、实用且详细的 REPL。

https://github.com/foundry-rs/foundry

 

DeFi Developer Road Map

DeFi Developer Road Map 是去中心化金融(DeFi)开发者的学习和技能路线图,该路线图包括了从基础的区块链知识、智能合约、加密货币等概念开始,逐渐深入到各种DeFi协议、去中心化交易所(DEX)、流动性挖掘(Liquidity Mining)、闪电贷(Flash Loans)等高级概念和实际项目开发。

https://github.com/OffcierCia/DeFi-Developer-Road-Map

 

FREE Web3 resources

FREE Web3 resources 给开发者和学习者提供了 Web3 相关资源,这些资源可以包括各种在线课程、文档、视频教程、社区和开放源代码库等。它们可以帮助更好地理解和使用 Web3 技术,构建去中心化、安全和可靠的应用。

https://github.com/FrancescoXX/free-Web3-resources

 

Awesome Web 3

一组很棒的 Web 3 学习资源。

https://github.com/ahmet/awesome-web3

 

Awesome Ethereum

一组很棒的以太坊和 Dapps 学习资源。

https://github.com/bekatom/awesome-ethereum

prometheus 接入nginx exporter并监控nginx服务器

 

1.检查nginx是否支持状态展示,

如果在终端中输出 with-http_stub_status_module ,则说明 Nginx 已启用 tub_status 模块。

nginx -V 2>&1 | grep -o with-http_stub_status_module

 

2.配置nginx.conf

server { 
    location /metrics {
        stub_status on;
    }
}

 

3.运行nginx exporter,这里的【目标nginxIP:端口】需要替换为nginx的ip:port

sudo docker run -d --name=prometheus_nginx \
  -p 9113:9113 \
  nginx/nginx-prometheus-exporter:0.10.0 \
  -nginx.scrape-uri=目标nginxIP:端口/metrics \
  -web.telemetry-path=/metrics

 

4.修改prometheus配置文件prometheus.yml,这里的【第三部配置的容器ip】替换为第三步创建的容器ip。

scrape_configs:
  - job_name: ‘nginx exporter’
    scrape_interval: 5s
    static_configs:
      - targets: ['第三部配置的容器ip:9113']

 

到此所有设置已完成,重启Prometheus后可以在查询输入框输入nginx,即可看到多个多个相关指标。

关于更多Prometheus相关知识参考官网:Getting started | Prometheus

prometheus错误:./prometheus: cannot execute binary file: Exec format error

这个情况一般是下载错误的二进制版本所致,比如linux下下载了mac的版本。

请尝试下载操作系统对应的版本。

nginx配置文件中fastcgi_param的 SCRIPT_FILENAME和PATH_TRANSLATED区别是什么
  • fastcgi_param SCRIPT_FILENAME $fastcgi_script_name; #脚本名称。
  • fastcgi_param PATH_TRANSLATED document_rootfastcgi_script_name; #请求的路径。
  • 当前日期:
  • 北京时间:
  • 时间戳:
  • 今年的第:18周
  • 我的 IP:13.59.192.254
农历
五行
冲煞
彭祖
方位
吉神
凶神
极简任务管理 help
+ 0 0 0
Task Idea Collect