ThinkPHP安全漏洞全曝光(90%开发者忽略的5个致命问题)

常见框架漏洞 原理:当用户勾选RememberMe并登录成功,Shiro会将用户的cookie值序列化,AES加密,接着base64编码后存储在cookie的rememberMe字段中,服务端收到登录请求后,会对rememberMe的cookie值进行base64解码,接着进行AES解密,然后反序列化。S2-059:攻击者可以通过构造恶意的OGNL表达式,并将其设置到可被外部输入进行修改,且会执行OGNL表达式的Struts2标签的属性值,引发OGNL表达式解析,最终造成远程代码执行的影响。 阅读详情

第一章:ThinkPHP安全漏洞全曝光(90%开发者忽略的5个致命问题)

许多开发者在使用 ThinkPHP 框架快速构建应用时,往往忽视了潜在的安全隐患。这些被广泛忽略的问题可能导致系统遭受 SQL 注入、远程代码执行、目录遍历等严重攻击。以下是五个极易被低估但危害极大的安全漏洞。

未过滤的输入参数导致SQL注入

ThinkPHP 虽然内置了参数绑定机制,但若开发者使用字符串拼接构造查询,则会绕过保护。例如:

// 危险写法
$uid = $_GET['id'];
Db::query("SELECT * FROM users WHERE id = $uid");

// 安全写法
$uid = input('get.id/d');
Db::name('users')->where('id', $uid)->find();
应始终使用预处理或框架提供的安全方法,避免直接拼接用户输入。

控制器方法暴露引发未授权访问

默认情况下,ThinkPHP 会将所有公共方法暴露为可访问接口。若未设置访问控制,攻击者可直接调用内部逻辑。
  • 确保敏感操作方法声明为 private 或 protected
  • 在公共方法中添加权限校验逻辑
  • 使用中间件统一拦截非法请求

文件上传路径可预测导致恶意文件执行

若上传功能未对文件名和扩展名进行严格校验,可能允许上传 PHP 脚本。
风险项修复建议
允许 .php 扩展名限制为图片类扩展如 jpg, png
存储路径可访问将上传目录置于 Web 根目录之外

配置信息泄露

错误配置的调试模式或不当的异常处理,可能导致数据库账号密码暴露在错误页面中。

反序列化漏洞利用链

ThinkPHP 的缓存与会话机制涉及对象序列化,若反序列化不可信数据,可能触发魔法方法执行恶意代码。避免将用户输入存入 session 对象,禁用不必要类的反序列化行为。

第二章:SQL注入与数据访问层防护

2.1 ThinkPHP查询机制与预处理原理

ThinkPHP采用基于PDO的预处理机制,有效防止SQL注入攻击。框架在底层封装了数据库查询构造器,开发者可通过链式调用构建安全的SQL语句。
查询构造器工作流程
用户调用如where()、field()等方法时,ThinkPHP将参数存储在查询对象中,最终拼接为预处理SQL语句,交由PDO执行。
$result = Db::name('user')
    ->where('id', ':id')
    ->bind(['id' => 1])
    ->select();
上述代码生成预处理语句SELECT * FROM user WHERE id = :id,绑定参数后执行,避免直接拼接SQL。
预处理优势分析
  • 参数与SQL语句分离,杜绝SQL注入风险
  • PDO自动转义特殊字符,提升安全性
  • 提高语句执行效率,尤其适用于批量操作

2.2 常见SQL注入场景及代码审计实例

用户登录绕过漏洞
最常见的SQL注入出现在用户认证逻辑中。当程序拼接用户输入到SQL语句时,攻击者可通过构造特殊输入绕过验证。

$username = $_POST['username'];
$password = $_POST['password'];
$sql = "SELECT * FROM users WHERE username='$username' AND password='$password'";
$result = mysqli_query($conn, $sql);
上述代码直接将用户输入拼接进SQL语句。若输入用户名为 ' OR '1'='1,查询恒为真,导致未授权访问。
搜索功能中的注入风险
模糊搜索功能常使用字符串拼接,易成为注入入口点。
  • 用户输入未经过滤直接参与查询
  • LIKE语句中特殊字符未转义
  • 缺乏预编译机制防护
建议采用参数化查询替代字符串拼接,从根本上杜绝注入风险。

2.3 使用参数绑定避免注入风险

在数据库操作中,SQL注入是常见安全漏洞。使用参数绑定(Prepared Statements)可有效隔离SQL结构与数据,防止恶意输入篡改查询逻辑。
参数绑定工作原理
数据库驱动预先编译SQL语句模板,将用户输入作为参数传递,不参与SQL解析过程,从根本上阻断注入路径。
代码示例:Go语言中的参数绑定
stmt, err := db.Prepare("SELECT id, name FROM users WHERE age > ?")
if err != nil {
    log.Fatal(err)
}
rows, err := stmt.Query(18) // 安全地传入参数
上述代码中,? 是占位符,实际值 18 由驱动安全转义并绑定,避免拼接字符串导致的注入。
  • 参数绑定强制区分代码与数据
  • 支持预编译,提升执行效率
  • 适用于所有动态查询条件场景

2.4 模型层与查询构造器的安全实践

在现代Web开发中,模型层是数据访问的核心。使用查询构造器时,必须防范SQL注入等安全风险。
参数化查询的正确使用
SELECT * FROM users WHERE email = ? AND status = ?
该语句通过占位符传递用户输入,数据库驱动会自动转义特殊字符,避免恶意SQL拼接。
ORM中的安全建议
  • 始终验证用户输入,限制字段长度和类型
  • 避免原始SQL拼接,优先使用框架提供的安全接口
  • 启用查询日志审计,监控异常访问行为
批量操作的防护策略
操作类型推荐方式风险等级
批量更新使用主键白名单过滤低
条件删除强制校验权限上下文中

2.5 自动验证与过滤策略的正确配置

在构建高可靠性的后端服务时,自动验证与过滤机制是保障数据安全与一致性的关键环节。合理配置这些策略可有效拦截非法请求并减少潜在攻击面。
验证规则的声明式定义
通过结构体标签(struct tag)可实现清晰的输入校验逻辑。例如在 Go 语言中:
type UserRequest struct {
    Name  string `validate:"required,min=2"`
    Email string `validate:"required,email"`
}
上述代码利用 validator 库对用户输入进行约束:Name 字段不能为空且长度不少于2字符,Email 需符合标准邮箱格式。该方式将验证逻辑与业务代码解耦,提升可维护性。
中间件层级的过滤策略
建议在路由中间件中统一应用过滤规则,如下表所示为常见过滤策略配置示例:
策略类型应用场景启用建议
IP 黑名单防止恶意访问生产环境必启
速率限制防暴力破解按接口重要性分级启用

第三章:路由与控制器安全陷阱

3.1 路由规则配置不当导致的越权访问

在现代Web应用中,路由是请求分发的核心组件。若路由规则配置不当,攻击者可能通过构造特殊URL绕过权限校验,访问本应受限的资源。
常见漏洞场景
  • 动态路由未校验用户身份与资源归属
  • API路径暴露管理接口且缺乏访问控制
  • 使用顺序匹配导致高权限路由被低权限规则覆盖
代码示例与分析

app.get('/user/:id/profile', (req, res) => {
  const userId = req.params.id;
  // 错误:未校验当前登录用户是否等于 :id
  res.json(fetchUserProfile(userId));
});
上述代码允许任意用户通过修改URL中的:id参数查看他人资料,构成水平越权。正确做法应在处理前加入权限判断逻辑,确保请求者与目标资源拥有相同身份或具备管理员权限。
防护建议
措施说明
强制权限中间件每个路由前执行身份与资源归属检查
最小权限原则默认拒绝,显式授权特定角色访问路径

3.2 控制器方法暴露与未授权调用

在Web应用中,控制器方法若未正确配置访问权限,可能导致敏感接口被公开调用。尤其在使用MVC框架时,开发者容易忽略对公共方法的访问控制,使得攻击者可通过URL直接触发关键操作。
常见暴露场景
  • 未加权限注解的REST接口
  • 调试用的公开方法未下线
  • 方法命名不当导致路由自动映射
代码示例与防护

@Controller
public class UserController {
  
  // 危险:未授权即可访问
  @RequestMapping("/admin/delete")
  public String deleteUser(String id) {
    userService.delete(id);
    return "success";
  }

  // 安全:添加权限校验
  @Secured("ROLE_ADMIN")
  @RequestMapping("/admin/delete-safe")
  public String deleteUserSafe(String id) {
    userService.delete(id);
    return "success";
  }
}
上述代码中,第一个方法未进行任何权限验证,攻击者可构造请求直接删除用户;第二个方法通过@Secured注解限制仅管理员角色可调用,有效防止未授权访问。

3.3 请求类型校验缺失引发的安全问题

在Web应用开发中,若未对HTTP请求类型(如GET、POST、PUT、DELETE)进行严格校验,攻击者可利用此缺陷发起非预期操作。例如,将本应为POST的敏感操作接口暴露于GET请求,可能导致CSRF或信息泄露。
典型漏洞场景
当服务端仅通过路径匹配路由而忽略请求方法时,攻击者可通过构造恶意链接诱导用户执行删除或修改操作。
  • 未验证请求类型导致数据被非法修改
  • GET请求执行写操作违反REST规范
  • 浏览器预加载或爬虫误触危险接口
代码示例与修复
// 漏洞代码:未校验请求类型
func deleteUser(w http.ResponseWriter, r *http.Request) {
    // 直接执行删除逻辑
    userId := r.URL.Query().Get("id")
    db.DeleteUser(userId)
    w.Write([]byte("User deleted"))
}

// 修复后:显式校验请求类型
func deleteUser(w http.ResponseWriter, r *http.Request) {
    if r.Method != "POST" {
        http.Error(w, "Method not allowed", http.StatusMethodNotAllowed)
        return
    }
    // 继续处理逻辑...
}
上述修复通过显式检查r.Method确保仅接受合法请求类型,有效防止因方法混淆导致的安全风险。

第四章:模板渲染与文件操作风险

4.1 模板注入(SSTI)攻击原理与案例分析

模板注入(Server-Side Template Injection, SSTI)是指攻击者将恶意代码注入到服务端模板引擎中,利用模板语法执行任意代码。这类漏洞常见于使用动态模板渲染的Web应用,如Flask(Jinja2)、Django、Twig等。
攻击原理
当用户输入被直接嵌入模板而未经过滤时,攻击者可构造特殊 payload 触发表达式解析。例如,在Jinja2中:
{{ 7 * 7 }}
若输入被原样渲染,服务器将计算表达式并返回49,表明存在代码执行风险。 进一步可尝试调用敏感对象:
{{ self.__class__.mro() }}
该语句可泄露类继承链,为后续利用提供信息。
典型攻击流程
  • 探测模板引擎类型
  • 验证表达式是否被解析
  • 构造 payload 获取上下文对象
  • 执行系统命令或读取敏感文件

4.2 文件上传功能中的路径遍历漏洞

漏洞成因分析
路径遍历漏洞常出现在文件上传功能中,当应用未对用户提交的文件名进行严格校验时,攻击者可通过构造特殊路径(如 ../../../etc/passwd)将文件写入服务器任意目录,导致敏感文件被覆盖或恶意脚本被注入。
典型攻击场景
  • 上传 WebShell 到可执行目录
  • 覆盖系统关键配置文件
  • 读取服务器敏感数据
代码示例与修复方案

$uploadDir = "/var/www/uploads/";
$fileName = basename($_FILES["file"]["name"]);
// 限制文件名字符集,移除路径符号
$fileName = preg_replace('/[^a-zA-Z0-9._-]/', '', $fileName);
$targetPath = $uploadDir . $fileName;
move_uploaded_file($_FILES["file"]["tmp_name"], $targetPath);
上述代码通过 basename() 剥离路径信息,并使用正则过滤非法字符,有效防止路径拼接。同时建议结合白名单机制,仅允许特定扩展名上传。

4.3 文件包含与动态include的安全控制

在Web应用开发中,文件包含功能常用于模块化代码加载。然而,动态include若缺乏安全控制,极易引发本地或远程文件包含(LFI/RFI)漏洞。
风险示例与代码分析

// 危险写法:直接使用用户输入
include $_GET['page'] . '.php';
上述代码未对$_GET['page']进行校验,攻击者可构造路径如?page=../../config读取敏感文件。
安全控制策略
  • 白名单限制可包含的文件名
  • 禁用allow_url_include防止远程加载
  • 使用basename()函数过滤路径字符
推荐实现方式

$allowed = ['home', 'about', 'contact'];
$page = $_GET['page'] ?? 'home';

if (in_array($page, $allowed)) {
    include "$page.php";
} else {
    die("Invalid page");
}
该实现通过显式白名单机制,杜绝非法路径访问,确保包含操作在可控范围内执行。

4.4 日志写入与敏感信息泄露防范

在系统运行过程中,日志是排查问题的重要依据,但不当的日志记录可能造成敏感信息泄露。尤其在记录用户请求、配置参数或异常堆栈时,需警惕密码、身份证号、密钥等数据被明文输出。
敏感字段过滤策略
可通过预定义正则规则自动脱敏日志中的敏感内容。例如,在Go语言中实现日志中间件:

func SanitizeLog(input string) string {
    patterns := map[string]*regexp.Regexp{
        "Password": regexp.MustCompile(`"password":"[^"]*"`),
        "ApiKey":   regexp.MustCompile(`"api_key":"[^"]*"`),
    }
    result := input
    for _, pattern := range patterns {
        result = pattern.ReplaceAllString(result, `"***"`)
    }
    return result
}
该函数匹配JSON格式中的敏感字段并替换为掩码,防止其写入日志文件。
日志写入安全建议
  • 禁止将完整请求体直接打印为DEBUG日志
  • 生产环境关闭堆栈追踪的详细变量输出
  • 对日志文件设置访问权限(如chmod 600)

第五章:构建高安全性的ThinkPHP应用体系

输入验证与过滤机制
在ThinkPHP中,应始终对用户输入进行严格验证。利用内置的验证器类可有效防止恶意数据注入:
namespace app\validate;
use think\Validate;

class UserValidate extends Validate
{
    protected $rule = [
        'username' => 'require|length:3,20|alphaDash',
        'email'    => 'require|email',
        'password' => 'require|length:6,20'
    ];
}
SQL注入防护
使用参数化查询是避免SQL注入的关键。ThinkPHP的查询构造器自动转义变量:
$user = Db::name('user')
    ->where('id', input('get.id/d'))
    ->find();
其中 `/d` 表示强制转换为整型,确保输入合法性。
跨站脚本(XSS)防御
输出到前端的数据应经过HTML实体编码。可通过模板引擎自动过滤: ```html {$content|htmlspecialchars} ``` 也可在控制器中手动处理:htmlspecialchars($data)。
CSRF攻击防范
启用表单令牌机制可有效阻止跨站请求伪造:
  1. 在配置文件中开启令牌验证:'token_on' => true
  2. 模板中添加隐藏字段:{:token()}
  3. 提交时框架自动校验Token有效性
安全配置建议
以下为核心安全配置项:
配置项推荐值说明
app_debugfalse生产环境关闭调试模式
url_common_paramfalse禁用普通URL参数模式
log_level['error','warning']记录关键日志信息
Thinkphp漏洞详解合集 Thinkphp漏洞合集详细分析(未完成) 阅读详情

相关推荐

ThinkPHP漏洞详解(自学)

Thinkphp是一个快速、兼容而且简单的轻量级PHP开发框架。ThinkPHP可以支持windows/Unix/Linux等服务器环境,正式版需要PHP 5.0以上版本,支持MySql、PgSQL、Sqlite多种数据库以及PDO扩展,是一款跨平台,跨版本以及简单易用的PHP框架。Thinkphp发展至今,主要有2.x、3.x、5.x、6.x系列,其中2.x和3.x系列官方已停止维护,5.x系列是目前使用最多的一个系列,而3.x系列比较多的老用户。

m0_64481831的博客 4932

Thinkphp常见漏洞总结

ThinkPHP漏洞整理

weixin_46622976的博客 7259

【web安全】——常见框架漏洞

详细介绍了web框架中的常见漏洞,如thinkphp,struts2,shiro,spring,log4j2,fastjson反序列化

wxh的博客 2515

ThinkPHP漏洞大全

tp5payload大全 https://github.com/SkyBlueEternal/thinkphp-RCE-POC-Collection tp5参考文献 https://blog.youkuaiyun.com/weixin_40709439/article/details/86564457 tp版本发现 1.使用错误的路径 2.采用错误的参数 1.版本5.0.x<5.0.23 1.0 5.0.x-5.0.23通杀RCE-payload # 第一个 http://127.0.0.1/cms/thi

FY10033的博客 1万+

ThinkPHP漏洞总结(利用)

ThinkPHP介绍 ThinkPHP是一个快速、兼容而且简单的轻量级国产PHP开发框架,诞生于2006年初,原名FCS,2007年元旦正式更名为ThinkPHP,遵循Apache2开源协议发布,从Struts结构移植过来并做了改进和完善,同时也借鉴了国外很多优秀的框架和模式,使用面向对象的开发结构和MVC模式,融合了Struts的思想和TagLib(标签库)、RoR的ORM映射和ActiveRecord模式。 ...

yangbz123的博客 1万+

ThinkPHP漏洞合集(专注渗透视角)_thinkphp v6

*漏洞原理:**ThinkPHP是在中国使用极为广泛的PHP开发框架。在其版本5中,由于框架错误地处理了控制器名称,因此如果网站未启用强制路由(默认设置),则该框架可以执行任何方法,从而导致RCE漏洞。docker ps**漏洞原理:**ThinkPHP是在中国使用极为广泛的PHP开发框架。

gan_zi_ge的博客 3868

ThinkPHP漏洞合集(专注渗透视角)

服务框架是指某领域一类服务的可复用设计与不完整的实现,与软件框架不同的是,服务框架同时体现着面向服务,一个服务框架可以分为两个主要部分:服务引擎、引入的外部服务。ThinkPHP,是为了简化企业级应用开发和敏捷WEB应用开发而诞生的开源轻量级PHP框架。可想而知框架连接着网络和系统接触着越来越多的关键数据,渐渐成为单位公共安全中最具有战略性的资产,框架的安全稳定运行也直接决定着业务系统能否正常使用。

LainWith的博客 1万+

ThinkPHP框架漏洞总结

Thinkphp简介 ThinkPHP是为了简化企业级应用开发和敏捷WEB应用开发而诞生的,是一个快速、兼容而且简单的轻量级国产PHP开发框架,诞生于2006年初,原名FCS,2007年元旦正式更名为ThinkPHP,遵循Apache2开源协议发布,从Struts结构移植过来并做了改进和完善,同时也借鉴了国外很多优秀的框架和模式,使用面向对象的开发结构和MVC模式,融合了Struts的思想和TagLib(标签库)、RoR的ORM映射和ActiveRecord模式。 ThinkPHP可以支持windows/U

weixin_42345596的博客 4417

从0认识+识别+掌握thinkphp全漏洞(超详细看完拿捏tp)文末带工具

国人开发的框架,上手简单,开发成本低,搭建容易所以,tp框架常见于一些违法网站上面tp版本信息文档中心 · ThinkPHP 这是tp的官方文档,包含了框架一些基本知识,一些必要的知识我会在复现过程中一一讲解,不过还是建议自己去看一下文档。

milu_Sec的博客 9174

ThinkPHP漏洞合集(专注渗透视角)_thinkphp v6,40道网络安全面试

*漏洞原理:**ThinkPHP是在中国使用极为广泛的PHP开发框架。在其版本5.0(

m0_60721823的博客 1496

【AI编程】用AI开发STM32软件(1):环境配置+AI编写LED闪烁

现在AI编程这么火,不拿来开发嵌软也太可惜了。笔者最近刚好有个2学分的实践课,要自己做项目,这不,机会就来了。笔者特意记录下来其过程,以供大家学习和参考。使用:VSCode+Copilot+EIDE+STM32CubeMX,单片机用最经典的stm32f103c8t6+STLink。

qq_23220445的博客 4574

Thinkphp常见漏洞利用

ThinkPHP是一个开源,快速、简单的轻量级国产PHP开发框架,诞生于2006年初,原名FCS,2007年元旦正式更名为ThinkPHP。使用面向对象的开发结构和MVC模式,融合了Struts的思想和TagLib(标签库)、RoR的ORM映射和ActiveRecord模式。ThinkPHP可以支持windows/Unix/Linux等服务器环境,正式版需要PHP 5.0以上版本,支持MySql、PgSQL、Sqlite多种数据库以及PDO扩展,是一款跨平台,跨版本以及简单易用的PHP框架。

未完成的歌~的博客 4963

PCF8591实战指南:从IIC通信到STM32的ADC/DAC配置(附完整代码)

本文详细介绍了PCF8591芯片在STM32开发中的实战应用,涵盖IIC通信协议、ADC/DAC配置及完整代码实现。通过解析DATA SHEET关键参数,提供硬件连接指南、控制字节配置技巧和常见问题解决方案,帮助开发者快速掌握这款8位模数/数模转换器的使用,实现精确的模拟信号处理。

y7z8a的博客 541

thinkphp漏洞总结

目录 前言 一、远程代码执行漏洞 1.1 影响范围 1.2 漏洞详情 二、5.x远程命令注入 三、5.1.x SQL注入 前言 thinkphp是一个国内轻量级的开发框架,采用php+apache,在更新迭代中,thinkphp也经常爆出各种漏洞,thinkphp一般有thinkphp2、thinkphp3、thinkphp5、thinkphp6版本,前两个版本已经停止更新,主要介绍下thinkphp5的漏洞 一、远程代码执行漏洞 1.1 影响范围 thinkphp&l...

scu_hacker博客 1万+

基于STM32的频率计(采用外部中断的方式)

前言 最近在了解电赛相关的东西,和指导老师交流一下,我决定先从最简单的频率计做起。 频率计是来检测信号的频率的,在做频率计的时候可以用信号发生器发出的信号来进行测试。 原理 这是最基础的方波,我们可以通过检测上升沿的方式来测量其频率。从周期的角度出发连续两个上升沿的时间就是这个方波的周期,那这个周期分之一就是这个方波的频率了。 在思考了一段时间~~(我是萌新。。)~~ 我觉得有两个方法可以实现,第一个是采用stm32定时器的输入捕获功能,第二个就是用外部中断来实现这个功能。正如标题,我这次采用外部中断的方

qq_45784922的博客 6171

VSCode CMake 安装与配置详解

概述 在windows上使用cmake编译C/C++程序时,首先需要CMake,安装gcc/g++编译环境,然后使用VSCode 以及配置下CMakelist.txt。 所需工具: VSCode (需要安装以下插件) C/C++ C++ Intellisense CMake CMake tools CMake Tools Helper CMake MinGW 安装CMake 下载链接:...

Markus 8万+

ThinkPHP 系列漏洞

所有 sql 注入漏洞均在 library/think/db/Builder.php 文件中。1、thinkphp5 SQL注入1漏洞影响版本: 5.0.13

SHELLCODE_8BIT的博客 5073

通讯软件013——分分钟学会Kepware OPC AE Server仿真配置

本文介绍如何使用Kepware软件仿真OPC AE Server配置。

zhouwl72的博客 2231

【vulhub】thinkphp漏洞系列

通过 get、header、cookie 等位置传入参数实现目录穿越和文件包含,从而利用 pearcmd 文件包含实现远程命令执行通过构造特定的 URL,可以实现目录穿越和文件包含,然后利用 pearcmd 文件包含实现远程命令执行。具体来说,该框架在使用preg_replace的/e模式匹配路由时,未对用户输入参数进行充分过滤,导致输入参数被直接插入双引号中执行,从而引发任意代码执行漏洞。模式进行正则匹配,用户输入的参数可能被直接注入到代码执行上下文中,导致攻击者可构造恶意输入执行任意代码。

2401_86835152的博客 788

UE4载具性能调优指南:从参数设置到实战优化

本文详细解析了UE4载具性能调优的关键技巧,从WheeledVehicle类构建到轮子参数、传动系统设置,再到物理属性与操控调校。通过实战案例分享,帮助开发者优化载具的速度、加速度等核心性能,提升游戏体验。特别适合需要精细调校载具物理特性的开发者参考。

weixin_29019241的博客 469

三菱FX5U PLC与CCLINK模块通信配置全流程(附接线图与参数详解)

本文详细解析了三菱FX5U PLC与CCLINK模块的通信配置全流程,包括硬件接线规范、参数设置及软件编程方法。通过实战指南帮助工程师快速掌握FX5U与CCLINK模块的高效通信技术,提升工业自动化控制系统的稳定性和可靠性。

weixin_27014595的博客 436

ThinkPHP 漏洞(上)

ThinkPHP高危漏洞分析与防护建议 摘要:ThinkPHP框架主要存在四类高危漏洞,包括远程代码执行(RCE)、SQL注入、任意文件操作和未授权访问。其中RCE漏洞危害最大,多源于参数过滤缺陷;SQL注入则常见于手动拼接SQL语句的场景。低版本(5.0/5.1)漏洞尤为高发,建议升级至最新稳定版。关键防护措施包括:严格参数绑定、禁用调试模式、配置权限中间件、限制敏感目录访问。遵循最小权限原则,统一使用input()方法过滤输入,并配合WAF等部署层防护措施,可有效降低安全风险。

Cby121353的博客 1779

ComfyUI 本地部署指南:概念、部署过程、生成图片、共享 WebUI 模型

ComfyUI 是一个基于节点的 Stable Diffusion 图形化用户界面。您可以通过将不同的节点连接在一起来构建生成图像的工作流程。一些常用的节点包括加载检查点模型(Load Checkpoint)、输入提示词(CLIP Text Encode)、指定采样器(KSampler)等。ComfyUI 将工作流程分解为可重新排列的元素,以便您可以轻松创建自己的元素。

水滴的博客 5034

mysql中添加字段

深知大多数初中级Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则近万的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!因此收集整理了一份《Java开发全套学习资料》送给大家,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

m0_54850467的博客 4万+

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

ThinkPHP历史漏洞

Thinkphp 是一种开源框架。是一个由国人开发的支持windows/Unix/Linux 等服务器环境的轻量级PHP开发框架。很多cms就是基于 thinkphp 二次开发的,所以 thinkphp 出问题的话,会影响很多基于 thinkphp开发的网站。

HAKUNAMATATATTA的博客 7477

贝叶斯统计 [韦来生编]

贝叶斯(Bayes)统计是近几十年来迅速发展起来的数理统计的一个重要分支。贝叶斯方法与经典统计方法的主要不同之处是进行统计推断时除了利用样本信息外,还要利用参数的先验信息,因此可以提高统计推断或统计决策的效果。它在经济、金融、生物、医学、自然科学和社会科学等许多领域具有广泛的应用。贝叶斯方法的研究已渗透到了统计学的几乎所有领域。作者在给中国科学技术大学概率论与数理统计专业本科生开设的“数理统计”课程中有一章专门讲授“贝叶斯方法和统计决策理论”,近十年来也给中国科学技术大学概率统计专业研究生开设过几次“贝叶斯分析”课。本书是在对过去讲稿的内容作了适当的增减和调整的基础上完成的。  本书共分六章。第1章是绪论,介绍了贝叶斯统计的若干基本概念,同时对必要的数理统计的基础知识有重点地作了回顾。第二章介绍了确定先验分布的若干可供选择的方法。第三章介绍了几类常见统计模型参数的后验分布的主要结果和计算方法。第四章和第五章分别介绍了“贝叶斯统计推断”和“贝叶斯统计决策”的内容。第六章介绍了贝叶斯统计计算的若干方法,包括蒙特卡洛方法和马尔可夫链蒙特卡洛(MCMC)方法以及相关统计软件的简介。本书的每一章附右大量的例题和习题,书末附有常用的几个表格和部分习题解答供读者查用。  大约可在54学时内讲授本书的第1章至第六章的主要内容,教师可根据学时需要选讲本书第1章至第六章的部分内容。书中标“*”号的章节可略去不讲,留给读者作为阅读材料。第六章例题中的R代码和部分例题的数据文件等可从作者个人主页下载。  作者在编写本书的过程中参考了J.O.Berger教授的《统计决策论及贝叶斯分析》和茆诗松教授编写的《贝叶斯统计》等书中的一些内容,以及《贝叶斯分析》一书中由张伟平博士编写的有关贝叶斯统计计算的一些内容。在此表示衷心感谢。  本书编写准备过程中,中国科学技术大学统计与金融系的几个研究生帮助完成了本书部分中文的录入和排版,作者对他们的辛勤工作表示真诚的感谢。高等教育出版社为本书的出版给予了大力支持。在此一并致谢。

thinkPHP漏洞复现--vulhub

收集thinkPHP已知漏洞的复现过程,包括所有payload也在内。Thinkphp 5.x RCE;ThinkPHP 2.x RCE;ThinkPHP5 SQL注入漏洞。

ccc_9wy的博客 1871

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

上一篇: Go语言重构的秘密武器:自动化工具链搭建与4大检测指标落地
下一篇: 【SwiftUI动画效果进阶指南】:掌握7种高阶动效实现技巧,提升App流畅度
SimCompile
博客等级 码龄1年 140粉丝 2012原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值