分类 默认分类 下的文章

跨源资源共享(CORS)


目录 [隐藏]I. 简单请求II. 预检请求III. 结论IV. origin 和referer 跨源资源共享(CORS)这里来聊聊跨源资源共享CORS(Cross Origin Resouce Share)。开局一张图,很多人错误理解跨源资源共享就是浏览器在访问服务器A(domain-a.com)获取的资源如果包含跨源服务器B(domain-a.com)资源的时候那么此时就需要跨源资源共享,所以我们需要配置我们的访问控制策略Access-Control-Allow-Origin 运行所有站点访问。但是为什么这里跨源资源共享是被服务器B控制的?原来这里这里跨源资源共享是...

GCC 未使用函数、变量和文件优化策略


目录 [隐藏]I. 样例II. 探索III. 结论 GCC 优化过于复杂,这里探索 GCC 对未使用的代码和变量以及文件的优化策略。3.10 Options That Control Optimization6.3.3 Reducing Size of Executables with Unused Subprogram/Data EliminationI. 样例如下两个文件。$ tree ├── main.c └── unused.cmain.c 文件内容如下。#include <stdio.h> // __attribute__((used, sect...

Linux capabilities


Linux capabilities对于权限细节参考man 7 capabilities;对于-+= eip操作符参考 man 3 cap_from_text;文档中命令setcap、getcap等都可以通过man命令查看;我需要在VS Code 调试NuttX应用,它的Sim应用需要cap_net_raw,cap_net_admin权限,否则就无法正常操作HCI设备。当然网上有一些帖子尝试将VS Code或者GDB运行在root用户,显然这样操作是非常不优雅的。所以这里尝试给需要调试的应用利用linux capabilities直接给可执行文件设置权限。$ sudo setcap 'c...

udp发送ip端口发送不可达


众所周知,udp是无连接的,所以忽略udp接收方状态,是否监听对应udp端口以及ip是否存在,直接向udp发送数据,会发生什么?为了搞清楚这个问题,我们尝试在局域网建立收发设备,然后抓包分析。端口不可达从抓包来看,udp数据正常发出。对端设备回复icmp指示端口不可达。ip 不可达当我们把接收端设备关机,此时udp数据正常发出,直到arp连续三次请求失败。此时抓包显示udp包已经不发送了。此时,我们跟踪sytem call 确定,发用户空间的sendto 接口仍然显示成功。sendto(3, "012345679abcdef\0", 16, 0, {sa_family...

一次无效的运维


目录 [隐藏]I. 恢复快照后不能上网II. 防火墙规则变化III. mac地址变化导致服务认证失败IV. 设备连接失败 这里记录一次无效的运维,称之为无效,更多的是我人为原因引起的。1月2号阿里云提示服务器执行恶意脚本,当时正在休元旦,直接忽略。1月4号上班的时候查看了完整提示,分析了启动上下文,确定服务器被redis恶意注入矿机脚本。能够被注入原因很简单,把无认证的redis直接暴露了在公网,因为该服务器是从其他公司过户过来,稳定运行了5年,接手后保持原来的端口安全策略也没有注意。http://65.108.48.150/f2201rr/f.sh第一时间分析了该脚本...

OpenID over OAuth2.0 详解


目录 [隐藏]I. OAuth2.0Spring Authorization ServerAccess TokensecurityII. OpenID OpenID over OAuth2.0 详解需要在Thingsboard上面加OAuth Server功能。如上是一开始的需求,但是随着深入理解,这里的OAuth Server并不正确,所以需要先科普知识。I. OAuth2.0对于OAuth ,参考OAuth2.0,里framework里面并没有定义OAuth Server 角色。它定义了4个角色Resource Ower;资源拥有者;Resource Server;资...

socat


目录 [隐藏]I. 地址规范地址关键字地址选项II. 样例远程访问目标机器的unix-domain socket监听unix socket重定向串口 socathttp://www.dest-unreach.org/socat/。提示:如下翻译来自 man 1 socat,未完待续……概述socat 是一个命令行工具,用以建立一个双向字节流交换数据。该字节流又可以被构造成不同地址类型,大量的地址选项也同样可以被作用于该流,因此socat非常强大。filan 是一个打印文件描述符的工具,已经被重构用以调试socat,当然,也可以另做它用。procan 是一个打印进程信息的工具...

在linux 下通过vscode调试elf可执行文件


how to use vscode debug elf ?elf 是linux 下可执行可链接文件(executable and linkable format)。通过gcc/make 我们很容易编译出我们需要的elf文件,借助vscode可以在ubuntu图形化调试该程序,再也不用在gdb命令操作了。如下是elf文件结构,包含文件头(elf header)和代码、数据区索引表(program header table、section header table)和对应代码区、数据区。明白了如上文件结构,还需要具体解答如下疑惑。什么文件可以被调试?通过file命令对比可以知道用以调试的文件...

在局域网建立.local域名


目录 [隐藏]I. hostnameII. hostsIII. mdnsIV. avahi ubuntu setup .local domain in lan需要理解linux下面的几个概念。I. hostname主机名,默认保存在/etc/hosname,可以通过命令hostname查看和更改。$hostname #查看 hachi-jay $sudo hostname -F /etc/hostname #编辑`/etc/hostname`后应用该命令更改。II. hosts本地域名文件,配置后再本机...

thingsboard 开发环境建立


目录 [隐藏]I. dependencylinuxII. installIII. troubleshootingmaven:Some files do not have the expected license headermaven:Could not resolve dependencies for project org.thingsboard:application:jar:2.4.1Failed to run task: 'npm install' failedjava:变量 log找不到符号java:类org.thingsboard.server.common.msg....