oscar999
毕业于中国科学技术大学,数据库四级、通过系统设计师、系统分析师、信息系统项目管理师资格认证。国际项目管理(IPMP)C级认证。超过20年软件项目开发和管理经验,精通Java Web相关技术(包括Spring系列、Ext JS等),对PHP、Python、C#、Vue等有涉猎。
展开
-
SSE(Server-Sent Events)完整使用示例
本篇使用Node.js 作为服务端,在浏览器客户端演示SSE的完整实例和演示。实现了一个基于 Server-Sent Events (SSE) 的实时数据推送功能。原创 2025-05-04 09:55:18 · 86 阅读 · 0 评论 -
一篇撸清 Http,SSE 与 WebSocket
特性HTTPWebSocket通信模式请求-响应(客户端主动发起)单向推送(仅服务器到客户端)全双工(客户端与服务器双向通信)协议基础基于 HTTP基于 HTTP 长连接独立协议(握手阶段依赖 HTTP)连接类型短连接(默认)或长连接(HTTP/1.1)长连接(持久性)长连接(持久性)数据格式任意格式(文本、二进制等)仅文本(UTF-8)文本和二进制延迟高(依赖轮询或长轮询)低(服务器主动推送)极低(双向即时通信)自动重连不支持支持(内置重连机制)原创 2025-05-04 09:54:25 · 465 阅读 · 0 评论 -
Java高风险之在用户界面(UI)中显示敏感数据(Display of sensitive data in the user interface)
Display of sensitive data in the user interface,在用户界面(UI)中显示敏感数据可能带来多种风险,这可能导致信息泄露和不必要的风险,因为敏感数据可能会被截屏、监控软件捕获、或者被旁观者看到。这些风险涉及数据泄露、身份盗用、经济损失和法律处罚等。数据泄露如果敏感数据(如个人身份信息、财务数据、业务信息等)在UI中未受保护地显示,任何能够访问该界面的用户或恶意第三方都可能获取这些信息。身份盗用。原创 2024-07-13 11:13:33 · 357 阅读 · 0 评论 -
软件代码漏洞风险等级
代码漏洞的风险等级通常根据漏洞的潜在影响、利用难易程度以及可能造成的损害程度来划分。不同的组织或机构可能会采用不同的标准或评分系统来评估漏洞的风险等级。原创 2024-07-09 22:14:00 · 659 阅读 · 0 评论 -
Java高风险漏洞与修复之——LDAP injection(LDAP注入)
LDAP注入是一种攻击技术,它可以利用应用程序中的安全漏洞对LDAP(轻量级目录访问协议)服务进行恶意查询或修改操作。当应用程序未能适当地清理用户的输入内容,将其嵌入到LDAP查询中时,就可能发生LDAP注入。攻击者通过注入未经授权的指令或条件来操纵查询结果,可能导致敏感数据的泄露、未授权的数据修改或者删除。与SQL注入类似,LDAP注入可以使攻击者修改LDAP查询的逻辑,对LDAP树目录进行不合法的搜索和修改。例如,攻击者可以修改一个查询,绕过登录验证,或者获取无权访问的用户信息。原创 2024-07-02 22:39:08 · 727 阅读 · 0 评论 -
Java代码高风险弱点与修复之——弱密码哈希漏洞-Very weak password hashing (WEAK_PASSWORD_HASH)
在安全性方面,此代码的一个主要问题在于,它依赖于使用SHA-256哈希函数直接处理密码以产生密钥。弱密码哈希漏洞指的是在密码存储和验证过程中,由于使用了不安全的哈希算法或哈希函数的错误使用,导致攻击者能够更容易地破解或绕过密码验证机制。以上代码结合了安全的随机盐值、密钥衍生函数和迭代次数等多个安全机制,大大提升了密码到密钥转换过程的安全性。这意味着相同的密码将始终生成相同的密钥,降低了安全性。:若用户选择的密码复杂度不高,如普通单词或常见短语,即使经过SHA-256哈希,生成的密钥也容易遭受彩虹表攻击。原创 2024-06-29 21:50:43 · 600 阅读 · 0 评论 -
日志注入风险与解决-Log injection (LOG_INJECTION)
例如,如果将用户提供的恶意字符作为日志输出内容时,就可能会导致日志文件中出现不安全的语句,从而攻击系统。总之,在使用日志记录器(Logger)时,应该避免将用户提供的数据直接作为日志输出内容,可以使用占位符的方式来代替用户提供的数据,以避免黑客攻击。为了避免这个警告,应该避免将用户提供的数据直接作为日志输出内容,可以使用占位符(placeholder)的方式来代替用户提供的数据,以避免黑客攻击。在这个修改后的示例代码中,使用占位符的方式,将用户提供的数据作为参数传递给日志记录器的方法,从而避免了黑客攻击。原创 2024-06-29 11:41:52 · 565 阅读 · 0 评论 -
Java路径操纵漏洞示例与解决赏析之一
这里涉及到文件系统的操作,因此可能存在路径遍历(也称为目录遍历)漏洞。这类漏洞使得攻击者通过修改路径输入(例如包含。这段代码的作用是用于查找路径下 ,某个包的所有类文件。之类的序列),访问不应被访问的文件系统目录。原创 2024-06-27 22:18:38 · 673 阅读 · 0 评论 -
Spring Boot 3 极速搭建OAuth2认证框架
使用 Spring Authorization Server 的较高版本,简单的状况只需要在 application.yml 配置就可以实现认证服务器, 如果要更详细的配置,也可以定义 SecurityConfig.java 进行配置。Spring Authorization Server支持四种授权方式, 简单起见,这里使用 客户端模式(Client Credentials),这种模式使用在API调用的授权上,这里使用 Postman进行验证。定义一个REST的控制器,并且写一个简单的映射方法。原创 2024-03-22 07:11:22 · 1855 阅读 · 7 评论 -
Java代码弱点与修复之——INT: Suspicious integer expression
"INT: Suspicious integer expression" ,可疑的整数表达式。该类型的漏洞指的是代码使用了不恰当的整数表达式。原创 2023-07-23 11:59:22 · 268 阅读 · 0 评论 -
Java代码弱点与修复之——Risky cryptographic hashing function (RISKY_CRYPTO)
Risky cryptographic就是指代码中使用了哪些不够安全的加密算法,也就是弱哈希算法。 RIPEMD、MD2、MD4、MD5、SHA0 和 SHA1 加密哈希算法不具有抗冲突性。 此外,这些算法还遭受长度扩展攻击:在不知道原始未散列消息的情况下,攻击者可以为以原始消息作为前缀的消息生成有效散列。原创 2023-07-22 10:39:00 · 368 阅读 · 0 评论 -
Coverity 概述
Coverity是一款代码静态扫描的工具, 可以检查的问题有:* 质量问题* 安全漏洞* 测试问题 , Test Advisor* Java 运行时缺陷原创 2023-07-12 22:00:43 · 1931 阅读 · 1 评论 -
Java高风险弱点与修复之——SQL injection(SQL注入)
SQL 注入(SQL injection)是一种常见的安全漏洞,指的是通过在应用程序的输入中注入恶意的 SQL 代码,从而能够执行未经授权的数据库查询。攻击者可以利用这个漏洞来读取、修改或删除数据库中的数据,或者通过应用程序的身份验证机制获得未经授权的访问权限。原创 2023-05-26 07:20:47 · 1438 阅读 · 0 评论 -
Java代码弱点与修复之——LI: Unsynchronized Lazy Initialization
如果懒加载的初始化操作没有被正确地同步,就可能导致多线程访问时的不一致,从而导致程序错误和异常。原创 2023-05-20 08:30:27 · 516 阅读 · 0 评论 -
Java代码弱点与修复之——Unintended regular expression(非期望的正则表达式)
意外的正则表达式(正则表达式混淆)附带某些输入的字符串操作返回了不正确的结果。原创 2023-05-19 21:04:35 · 677 阅读 · 0 评论 -
Java代码弱点与修复之——RC: Questionable use of reference equality rather than calling equals
"RC" 表示 "Questionable use of reference equality rather than calling equals",翻译的意思是: 使用了引用相等性(reference equality)而没有调用 equals 方法的方式进行两个对象比较,这种用法有可能有问题。这种问题可能会导致程序错误或不稳定的行为。原创 2023-05-11 21:31:14 · 280 阅读 · 0 评论 -
使用Eclipse +SpotBugs 检测代码弱点
SpotBugs 是分析Java代码弱点的静态分析工具,SpotBugs提供了Eclipse的插件使用方式,在Eclipse 中安装插件之后就可以坚持Java代码的弱点了。原创 2023-05-10 06:50:52 · 1360 阅读 · 0 评论 -
Java代码弱点与修复之——STCAL: Static use of type Calendar or DateFormat
避免静态使用 Calendar 和 DateFormat 类型可以提高程序的健壮性和可维护性,以及避免多线程环境下可能出现的错误。原创 2023-05-08 21:58:48 · 1090 阅读 · 0 评论 -
Spring Boot项目之伪Masked Field弱点解决
在上面一篇也提到了, 即使没有实际存在Masked Field 弱点的状况下, 有时候扫描工具也会扫到该弱点,场景就是:如果一个私有字段可以在外部被访问或者修改,无论是直接使用还是通过复杂的方法来修改,都可能会导致数据不一致或者安全问题的出现。这里的“伪Masked Field” 指的不是真正的“掩码字段”漏洞,但是却被代码扫描工具扫描出来具有该类型的弱点。对于这里而言, 在子类和父类中同时注入了 EntityManager , 会被扫描工具认为这个字段会被修改,导致不一致 ,所以提示这个风险。原创 2023-05-08 20:47:00 · 529 阅读 · 0 评论 -
Java代码弱点与修复之——Masked Field(掩码字段)
“掩码字段”的代码弱点出现在一个类中包含了一个私有字段和一个返回该字段的方法,该法通过掩码或其他方式来设置该私有字段的一部分,以便进行其他操作。这种方式可能会导致数据的不一致性或者安全漏洞,例如在数据持久化时出现问题,或者在应用层被篡改敏感数据的值导致出现安全问题等。原创 2023-05-05 22:02:59 · 607 阅读 · 0 评论 -
Java代码弱点与修复之——Se: Incorrect definition of Serializable class(可序列化类的定义不正确)
Se: Incorrect definition of Serializable class,可序列化类的定义不正确。 该弱点属于低风险。原创 2023-04-24 21:43:40 · 654 阅读 · 0 评论 -
Web之DOM-based cross-site scripting漏洞处理
DOM-based cross-site scripting,基于DOM的跨站脚本攻击。在使用Coverity静态扫描工具扫描可以发现这类型的风险。原创 2023-04-02 20:07:13 · 421 阅读 · 0 评论 -
Java非空判断相关的弱点类型汇总与比较
缺少非空判断可能会导致`NullPointerException`异常,严重会发生程序崩溃或出现其他异常, 而编码过程中非空判断的类型也有多种。原创 2023-03-08 06:59:53 · 487 阅读 · 0 评论 -
Java代码弱点与修复之——Explicit null dereferenced(显式空间接引用)
Explicit null dereferenced, 显示空间接引用。是 Coverity 静态代码分析工具检测到的一种中风险缺陷。这种缺陷通常发生在尝试使用空指针引用调用对象上的方法或访问属性时。Explicit null dereferenced的缺陷可能会导致程序崩溃或产生不可预测的结果。原创 2023-03-07 21:21:18 · 941 阅读 · 0 评论 -
Java代码弱点与修复之——Dereference null return value(间接引用空返回值)
Dereference null return value,间接引用空返回值。是Coverity Scan静态代码分析工具中的一个警告,表示代码中有对可能为空(null)的方法或函数返回值进行间接引用(Dereference)操作。该类型的漏洞可能会导致 `NullPointerException` 异常,并且会导致程序崩溃或出现其他异常。原创 2023-03-06 22:38:00 · 1415 阅读 · 0 评论 -
Java代码弱点与修复之——BC: Bad casts of object references(错误的强制类型转换)
Bad casts of object references: 错误的强制类型转换。在Coverity中,属于低风险漏洞。在FindBugs中, 该类型错误的编号是FB.BC_UNCONFIRMED_CAST,它表示存在可能存在不安全的类型转换。在Java中,如果在将一个对象转换为另一个类型时出错,会抛出ClassCastException异常。这个警告就是为了防止这种情况发生。原创 2023-03-05 20:46:22 · 482 阅读 · 0 评论 -
Java代码弱点与修复之——Copy-paste error(复制粘贴错误)
Copy-paste error,复制粘贴错误。是指在复制和粘贴代码时产生的错误。这种错误通常是由于程序员在复制代码时未正确编辑所复制的代码或编辑复制后的代码时忘记更改一些值或参数而导致的。复制粘贴错误可能会导致程序逻辑错误、编译错误或运行时错误。原创 2023-03-04 09:21:39 · 1422 阅读 · 0 评论 -
Java代码弱点与修复之——Open redirect(开放重定向)
Open redirect , 开放重定向,是一种常见的安全漏洞,也被称为“重定向漏洞”。该漏洞通常出现在 Web 应用程序中,攻击者可以利用它将用户重定向到恶意站点,从而进行钓鱼攻击、恶意软件传播、诱骗等活动。原创 2023-03-03 22:24:33 · 2169 阅读 · 0 评论 -
Java代码弱点与修复之——Dereference after null check-空检查后间接引用
Dereference after null check-空检查后间接引用。 在Java语言中,通俗点的说明就是: 对于一个可能为空的变量,前面使用的时候进行了非空判断,后面使用的时候又没有进行非空判断。是指在复制和粘贴代码时产生的错误。这种错误通常是由于程序员在复制代码时未正确编辑所复制的代码或编辑复制后的代码时忘记更改一些值或参数而导致的。复制粘贴错误可能会导致程序逻辑错误、编译错误或运行时错误。原创 2023-03-02 22:19:32 · 1156 阅读 · 0 评论 -
Java代码弱点与修复之——Copy-paste error(复制粘贴错误)
Copy-paste error,复制粘贴错误。是指在复制和粘贴代码时产生的错误。这种错误通常是由于程序员在复制代码时未正确编辑所复制的代码或编辑复制后的代码时忘记更改一些值或参数而导致的。复制粘贴错误可能会导致程序逻辑错误、编译错误或运行时错误。原创 2023-03-01 22:29:16 · 1090 阅读 · 0 评论 -
Java代码弱点与修复之——URL manipulation(URL操纵)
"URL manipulation" 是指攻击者利用应用程序中的 URL 参数来执行恶意操作的一种攻击技术。原创 2023-02-28 22:24:23 · 2172 阅读 · 0 评论 -
Java代码弱点与修复之——Arguments in wrong order(参数顺序错误)
"Arguments in wrong order":是指在调用方法时传入参数的顺序不正确,导致方法的行为与预期不符。原创 2023-02-28 21:56:43 · 154 阅读 · 0 评论 -
Java代码弱点与修复之——ORM persistence error(对象关系映射持久错误)
ORM persistence error, ORM 持久化错误 。表示 ORM 工具在尝试将对象保存到数据库中时出现了问题原创 2023-02-27 22:43:53 · 522 阅读 · 0 评论 -
Java代码弱点与修复之——WMI: Inefficient Map Iterator(低效的Map迭代器)
Inefficient Map Iterator,意思是“低效的Map迭代器”。这个警告表示代码中存在低效的迭代器遍历Map的方式,通常会影响性能。在FindBugs中,简写为WMI。原创 2023-02-23 19:59:06 · 592 阅读 · 0 评论 -
Java代码弱点与修复之——DE: Dropped or ignored exception(无视或忽略异常)
Dropped or ignored exception(DE)指的是在代码中抛出的异常被捕获后被无视或忽略了,而不是被适当地处理。这种情况通常发生在程序员没有处理异常或处理异常时不小心忽略了异常的情况下。原创 2023-02-22 21:32:38 · 992 阅读 · 0 评论 -
Java代码弱点与修复之——‘Constant‘ variable guards dead code
'Constant' variable guards dead code 常量变量导致的死代码。这是FindBugs 定义的弱点, 在Coverity中属于低风险弱点。这个弱点指代码中存在不可达的语句或代码块,这些代码被警告视为“死代码”。通常是由于条件判断中包含了常量值而导致的。原创 2023-02-22 21:23:23 · 192 阅读 · 0 评论 -
Java代码弱点与修复之——Logically dead code-逻辑死代码
Logically dead code , 逻辑死代码, 也就是永远也不会被执行到的代码。在Coverity扫描种属于中风险代码漏洞。原创 2023-02-15 23:07:03 · 766 阅读 · 0 评论 -
Java代码弱点与修复之——Suspicious calls to generic collection methods
`Suspicious calls to generic collection methods `: 对通用collection 方法的可疑调用,这是Coverity扫描的提示错误。该弱点属于中风险的弱点, 在FindBugs/SpogBugs,定义这属于Java代码的一个Bug, 编号是GC_UNRELATED_TYPES, 对应的描述是:原创 2023-02-14 22:07:23 · 3071 阅读 · 0 评论 -
Java代码弱点与修复之——Dereference before null check 空检查前间接引用
Dereference before null check,空检查前取消引用。通俗一点就是一个可能为空的变量, 先使用了, 后面又进行非空判断。原创 2023-02-13 21:53:18 · 1317 阅读 · 0 评论 -
Java之路径操纵解决的误区
目前网络上查询的Java解决 Path Manipulation 弱点的方案是不足的甚至是错误的,有一定的误导性。比如stackoverflow 有一篇的解决方案是建议使用 Java本身的Path 或者是Apache Common IO 的normalize()方法来对路径进行规范化处理。原创 2023-02-09 22:32:34 · 1880 阅读 · 0 评论