
程序员征服安全:分享与学习系列-不安全的反序列化
根据应用程序的不同,序列化过程可能会一直发生。该术语用于描述何时将数据结构或对象状态转换为可以存储或可能作为通信发送的格式。反序列化与此过程相反,将现在的结构化数据转换为存储前的对象或数据字符串。
每当应用程序将反序列化的数据视为可信数据时,就会发生不安全的反序列化。如果用户能够修改新重建的数据,他们就可以执行各种恶意活动,例如代码注入、拒绝服务攻击,或者干脆更改数据,让自己在应用程序中获得一些优势,例如降低对象的价格或提升权限。
在本集中,我们将学习:
- 攻击者如何利用不安全的反序列化
- 为什么不安全的反序列化很危险
- 可以修复此漏洞的技术。
攻击者如何利用不安全的反序列化?
如今,最流行的序列化数据格式是 JSON,尽管 XML 紧随其后。不少编程语言还提供了自己的序列化数据的方法,这些方法通常包含比 JSON 或 XML 更多的功能。无论如何,如果开发人员对应用程序进行编程,将反序列化数据视为可信输入,而不是遵循本系列其他博客的旧口头禅,特别是:“永远不要相信用户的输入!”
用户输入永远不可信任,因为用户可以在这些字符串中插入代码,接收服务器可能会意外执行这些代码。而且,由于原始反序列化数据有时也可以被访问和利用,因此它需要属于同样的不信任类别。
例如,如果论坛应用程序使用 PHP 对象序列化来保存包含用户身份和角色的 cookie,则可以对其进行操作。恶意用户可能会改为将其 “用户” 角色更改为 “管理员”。或者,他们可以使用数据字符串提供的开口来注入代码,服务器在处理 “可信” 数据时可能会误解并运行这些代码。
为什么不安全的反序列化很危险?
的确,这种攻击需要黑客有一点技巧,有时还需要反复试验,同时攻击者了解服务器将从他们操纵的反序列化数据中接受哪种代码或漏洞。也就是说,这是一个经常被利用的漏洞,因为它赋予了足够熟练使用该漏洞的黑客的潜在力量。
根据反序列化数据的使用方式,可以采用任意数量的攻击,包括我们在之前的博客中介绍的许多攻击。不安全的反序列化可以成为远程跨代码注入、跨站点脚本、拒绝服务、访问控制劫持,当然还有 SQL 和 XML 注入攻击的门户。它基本上打开了一个起点,声明所有被反序列化的数据都是可信的,并让攻击者尝试利用它。
消除不安全的反序列化
为防止不安全的反序列化,组织可以做的最安全的事情是限制应用程序接受反序列化数据。但是,这可能不可能或不现实,但不用担心,因为还有其他技术可以用来防御这种攻击。
如果可能,可以将数据消毒为数值之类的东西。这可能无法完全阻止漏洞,但会阻止代码注入。更好的办法是只需要对反序列化数据(例如数字签名)进行某种形式的完整性检查,这样可以确保数据字符串未被操纵。并且所有反序列化过程都应隔离并在低权限环境中运行。
这些保护措施到位后,请务必记录所有失败的反序列化尝试,以及来自反序列化数据的容器或服务器的网络活动。如果用户在日志中触发了多个反序列化错误,则很好地表明他们要么是恶意内部人士,要么已被黑客入侵或窃取。你甚至可以考虑对不断触发反序列化错误的用户进行自动锁定之类的事情。
无论你使用哪种工具来对抗不安全的反序列化,都要记住,从本质上讲,这些数据可能已被用户触摸或操纵。永远不要相信它。
有关使用存在已知漏洞的组件的更多信息
要进一步阅读,你可以看看 OWASP 怎么说 关于不安全的反序列化。你还可以使用以下方法来测试你新获得的防御知识 免费展示柜 Secure Code Warrior 平台,该平台培训网络安全团队成为终极网络战士。要了解有关克服此漏洞以及其他恶棍威胁的更多信息,请访问 安全代码勇士博客。


每当应用程序将反序列化的数据视为可信数据时,就会发生不安全的反序列化。如果用户能够修改新重建的数据,他们就可以执行各种恶意活动,例如代码注入、拒绝服务攻击或提升权限。
Jaap Karan Singh es un evangelista de la codificación segura, jefe Singh y cofundador de Secure Code Warrior.

Secure Code Warrior puede ayudar a su organización a proteger el código a lo largo de todo el ciclo de vida del desarrollo de software y a crear una cultura que dé prioridad a la ciberseguridad. Tanto si es usted responsable de seguridad de aplicaciones, desarrollador, director de seguridad de la información o cualquier otra persona relacionada con la seguridad, podemos ayudar a su organización a reducir los riesgos asociados al código inseguro.
Reservar una demostraciónJaap Karan Singh es un evangelista de la codificación segura, jefe Singh y cofundador de Secure Code Warrior.


根据应用程序的不同,序列化过程可能会一直发生。该术语用于描述何时将数据结构或对象状态转换为可以存储或可能作为通信发送的格式。反序列化与此过程相反,将现在的结构化数据转换为存储前的对象或数据字符串。
每当应用程序将反序列化的数据视为可信数据时,就会发生不安全的反序列化。如果用户能够修改新重建的数据,他们就可以执行各种恶意活动,例如代码注入、拒绝服务攻击,或者干脆更改数据,让自己在应用程序中获得一些优势,例如降低对象的价格或提升权限。
在本集中,我们将学习:
- 攻击者如何利用不安全的反序列化
- 为什么不安全的反序列化很危险
- 可以修复此漏洞的技术。
攻击者如何利用不安全的反序列化?
如今,最流行的序列化数据格式是 JSON,尽管 XML 紧随其后。不少编程语言还提供了自己的序列化数据的方法,这些方法通常包含比 JSON 或 XML 更多的功能。无论如何,如果开发人员对应用程序进行编程,将反序列化数据视为可信输入,而不是遵循本系列其他博客的旧口头禅,特别是:“永远不要相信用户的输入!”
用户输入永远不可信任,因为用户可以在这些字符串中插入代码,接收服务器可能会意外执行这些代码。而且,由于原始反序列化数据有时也可以被访问和利用,因此它需要属于同样的不信任类别。
例如,如果论坛应用程序使用 PHP 对象序列化来保存包含用户身份和角色的 cookie,则可以对其进行操作。恶意用户可能会改为将其 “用户” 角色更改为 “管理员”。或者,他们可以使用数据字符串提供的开口来注入代码,服务器在处理 “可信” 数据时可能会误解并运行这些代码。
为什么不安全的反序列化很危险?
的确,这种攻击需要黑客有一点技巧,有时还需要反复试验,同时攻击者了解服务器将从他们操纵的反序列化数据中接受哪种代码或漏洞。也就是说,这是一个经常被利用的漏洞,因为它赋予了足够熟练使用该漏洞的黑客的潜在力量。
根据反序列化数据的使用方式,可以采用任意数量的攻击,包括我们在之前的博客中介绍的许多攻击。不安全的反序列化可以成为远程跨代码注入、跨站点脚本、拒绝服务、访问控制劫持,当然还有 SQL 和 XML 注入攻击的门户。它基本上打开了一个起点,声明所有被反序列化的数据都是可信的,并让攻击者尝试利用它。
消除不安全的反序列化
为防止不安全的反序列化,组织可以做的最安全的事情是限制应用程序接受反序列化数据。但是,这可能不可能或不现实,但不用担心,因为还有其他技术可以用来防御这种攻击。
如果可能,可以将数据消毒为数值之类的东西。这可能无法完全阻止漏洞,但会阻止代码注入。更好的办法是只需要对反序列化数据(例如数字签名)进行某种形式的完整性检查,这样可以确保数据字符串未被操纵。并且所有反序列化过程都应隔离并在低权限环境中运行。
这些保护措施到位后,请务必记录所有失败的反序列化尝试,以及来自反序列化数据的容器或服务器的网络活动。如果用户在日志中触发了多个反序列化错误,则很好地表明他们要么是恶意内部人士,要么已被黑客入侵或窃取。你甚至可以考虑对不断触发反序列化错误的用户进行自动锁定之类的事情。
无论你使用哪种工具来对抗不安全的反序列化,都要记住,从本质上讲,这些数据可能已被用户触摸或操纵。永远不要相信它。
有关使用存在已知漏洞的组件的更多信息
要进一步阅读,你可以看看 OWASP 怎么说 关于不安全的反序列化。你还可以使用以下方法来测试你新获得的防御知识 免费展示柜 Secure Code Warrior 平台,该平台培训网络安全团队成为终极网络战士。要了解有关克服此漏洞以及其他恶棍威胁的更多信息,请访问 安全代码勇士博客。

根据应用程序的不同,序列化过程可能会一直发生。该术语用于描述何时将数据结构或对象状态转换为可以存储或可能作为通信发送的格式。反序列化与此过程相反,将现在的结构化数据转换为存储前的对象或数据字符串。
每当应用程序将反序列化的数据视为可信数据时,就会发生不安全的反序列化。如果用户能够修改新重建的数据,他们就可以执行各种恶意活动,例如代码注入、拒绝服务攻击,或者干脆更改数据,让自己在应用程序中获得一些优势,例如降低对象的价格或提升权限。
在本集中,我们将学习:
- 攻击者如何利用不安全的反序列化
- 为什么不安全的反序列化很危险
- 可以修复此漏洞的技术。
攻击者如何利用不安全的反序列化?
如今,最流行的序列化数据格式是 JSON,尽管 XML 紧随其后。不少编程语言还提供了自己的序列化数据的方法,这些方法通常包含比 JSON 或 XML 更多的功能。无论如何,如果开发人员对应用程序进行编程,将反序列化数据视为可信输入,而不是遵循本系列其他博客的旧口头禅,特别是:“永远不要相信用户的输入!”
用户输入永远不可信任,因为用户可以在这些字符串中插入代码,接收服务器可能会意外执行这些代码。而且,由于原始反序列化数据有时也可以被访问和利用,因此它需要属于同样的不信任类别。
例如,如果论坛应用程序使用 PHP 对象序列化来保存包含用户身份和角色的 cookie,则可以对其进行操作。恶意用户可能会改为将其 “用户” 角色更改为 “管理员”。或者,他们可以使用数据字符串提供的开口来注入代码,服务器在处理 “可信” 数据时可能会误解并运行这些代码。
为什么不安全的反序列化很危险?
的确,这种攻击需要黑客有一点技巧,有时还需要反复试验,同时攻击者了解服务器将从他们操纵的反序列化数据中接受哪种代码或漏洞。也就是说,这是一个经常被利用的漏洞,因为它赋予了足够熟练使用该漏洞的黑客的潜在力量。
根据反序列化数据的使用方式,可以采用任意数量的攻击,包括我们在之前的博客中介绍的许多攻击。不安全的反序列化可以成为远程跨代码注入、跨站点脚本、拒绝服务、访问控制劫持,当然还有 SQL 和 XML 注入攻击的门户。它基本上打开了一个起点,声明所有被反序列化的数据都是可信的,并让攻击者尝试利用它。
消除不安全的反序列化
为防止不安全的反序列化,组织可以做的最安全的事情是限制应用程序接受反序列化数据。但是,这可能不可能或不现实,但不用担心,因为还有其他技术可以用来防御这种攻击。
如果可能,可以将数据消毒为数值之类的东西。这可能无法完全阻止漏洞,但会阻止代码注入。更好的办法是只需要对反序列化数据(例如数字签名)进行某种形式的完整性检查,这样可以确保数据字符串未被操纵。并且所有反序列化过程都应隔离并在低权限环境中运行。
这些保护措施到位后,请务必记录所有失败的反序列化尝试,以及来自反序列化数据的容器或服务器的网络活动。如果用户在日志中触发了多个反序列化错误,则很好地表明他们要么是恶意内部人士,要么已被黑客入侵或窃取。你甚至可以考虑对不断触发反序列化错误的用户进行自动锁定之类的事情。
无论你使用哪种工具来对抗不安全的反序列化,都要记住,从本质上讲,这些数据可能已被用户触摸或操纵。永远不要相信它。
有关使用存在已知漏洞的组件的更多信息
要进一步阅读,你可以看看 OWASP 怎么说 关于不安全的反序列化。你还可以使用以下方法来测试你新获得的防御知识 免费展示柜 Secure Code Warrior 平台,该平台培训网络安全团队成为终极网络战士。要了解有关克服此漏洞以及其他恶棍威胁的更多信息,请访问 安全代码勇士博客。

Haga clic en el siguiente enlace y descargue el PDF de este recurso.
Secure Code Warrior puede ayudar a su organización a proteger el código a lo largo de todo el ciclo de vida del desarrollo de software y a crear una cultura que dé prioridad a la ciberseguridad. Tanto si es usted responsable de seguridad de aplicaciones, desarrollador, director de seguridad de la información o cualquier otra persona relacionada con la seguridad, podemos ayudar a su organización a reducir los riesgos asociados al código inseguro.
Ver informeReservar una demostraciónJaap Karan Singh es un evangelista de la codificación segura, jefe Singh y cofundador de Secure Code Warrior.
根据应用程序的不同,序列化过程可能会一直发生。该术语用于描述何时将数据结构或对象状态转换为可以存储或可能作为通信发送的格式。反序列化与此过程相反,将现在的结构化数据转换为存储前的对象或数据字符串。
每当应用程序将反序列化的数据视为可信数据时,就会发生不安全的反序列化。如果用户能够修改新重建的数据,他们就可以执行各种恶意活动,例如代码注入、拒绝服务攻击,或者干脆更改数据,让自己在应用程序中获得一些优势,例如降低对象的价格或提升权限。
在本集中,我们将学习:
- 攻击者如何利用不安全的反序列化
- 为什么不安全的反序列化很危险
- 可以修复此漏洞的技术。
攻击者如何利用不安全的反序列化?
如今,最流行的序列化数据格式是 JSON,尽管 XML 紧随其后。不少编程语言还提供了自己的序列化数据的方法,这些方法通常包含比 JSON 或 XML 更多的功能。无论如何,如果开发人员对应用程序进行编程,将反序列化数据视为可信输入,而不是遵循本系列其他博客的旧口头禅,特别是:“永远不要相信用户的输入!”
用户输入永远不可信任,因为用户可以在这些字符串中插入代码,接收服务器可能会意外执行这些代码。而且,由于原始反序列化数据有时也可以被访问和利用,因此它需要属于同样的不信任类别。
例如,如果论坛应用程序使用 PHP 对象序列化来保存包含用户身份和角色的 cookie,则可以对其进行操作。恶意用户可能会改为将其 “用户” 角色更改为 “管理员”。或者,他们可以使用数据字符串提供的开口来注入代码,服务器在处理 “可信” 数据时可能会误解并运行这些代码。
为什么不安全的反序列化很危险?
的确,这种攻击需要黑客有一点技巧,有时还需要反复试验,同时攻击者了解服务器将从他们操纵的反序列化数据中接受哪种代码或漏洞。也就是说,这是一个经常被利用的漏洞,因为它赋予了足够熟练使用该漏洞的黑客的潜在力量。
根据反序列化数据的使用方式,可以采用任意数量的攻击,包括我们在之前的博客中介绍的许多攻击。不安全的反序列化可以成为远程跨代码注入、跨站点脚本、拒绝服务、访问控制劫持,当然还有 SQL 和 XML 注入攻击的门户。它基本上打开了一个起点,声明所有被反序列化的数据都是可信的,并让攻击者尝试利用它。
消除不安全的反序列化
为防止不安全的反序列化,组织可以做的最安全的事情是限制应用程序接受反序列化数据。但是,这可能不可能或不现实,但不用担心,因为还有其他技术可以用来防御这种攻击。
如果可能,可以将数据消毒为数值之类的东西。这可能无法完全阻止漏洞,但会阻止代码注入。更好的办法是只需要对反序列化数据(例如数字签名)进行某种形式的完整性检查,这样可以确保数据字符串未被操纵。并且所有反序列化过程都应隔离并在低权限环境中运行。
这些保护措施到位后,请务必记录所有失败的反序列化尝试,以及来自反序列化数据的容器或服务器的网络活动。如果用户在日志中触发了多个反序列化错误,则很好地表明他们要么是恶意内部人士,要么已被黑客入侵或窃取。你甚至可以考虑对不断触发反序列化错误的用户进行自动锁定之类的事情。
无论你使用哪种工具来对抗不安全的反序列化,都要记住,从本质上讲,这些数据可能已被用户触摸或操纵。永远不要相信它。
有关使用存在已知漏洞的组件的更多信息
要进一步阅读,你可以看看 OWASP 怎么说 关于不安全的反序列化。你还可以使用以下方法来测试你新获得的防御知识 免费展示柜 Secure Code Warrior 平台,该平台培训网络安全团队成为终极网络战士。要了解有关克服此漏洞以及其他恶棍威胁的更多信息,请访问 安全代码勇士博客。
Índice
Jaap Karan Singh es un evangelista de la codificación segura, jefe Singh y cofundador de Secure Code Warrior.

Secure Code Warrior puede ayudar a su organización a proteger el código a lo largo de todo el ciclo de vida del desarrollo de software y a crear una cultura que dé prioridad a la ciberseguridad. Tanto si es usted responsable de seguridad de aplicaciones, desarrollador, director de seguridad de la información o cualquier otra persona relacionada con la seguridad, podemos ayudar a su organización a reducir los riesgos asociados al código inseguro.
Reservar una demostraciónDescargarRecursos para ayudarle a empezar
Temas y contenidos de la formación sobre códigos de seguridad
Nuestro contenido líder en el sector está en constante evolución para adaptarse al cambiante panorama del desarrollo de software, teniendo en cuenta su función. Los temas abarcan desde la IA hasta la inyección de XQuery, y son aptos para puestos que van desde arquitectos e ingenieros hasta gestores de productos y control de calidad. Eche un vistazo por adelantado a nuestro catálogo de contenidos, ordenados por tema y función.
La Cámara de Comercio establece el estándar para la seguridad impulsada por desarrolladores a gran escala
Kamer van Koophandel comparte cómo ha integrado la codificación segura en el desarrollo diario mediante certificaciones basadas en roles, evaluaciones comparativas de Trust Score y una cultura de responsabilidad compartida en materia de seguridad.
Modelado de amenazas con IA: convertir a cada desarrollador en un modelador de amenazas
Saldrá mejor equipado para ayudar a los desarrolladores a combinar ideas y técnicas de modelado de amenazas con las herramientas de IA que ya utilizan para reforzar la seguridad, mejorar la colaboración y crear software más resistente desde el principio.
Recursos para ayudarle a empezar
Cybermon ha vuelto: la misión de derrotar al jefe IA ya está disponible bajo demanda.
Cybermon 2025 ya está disponible en SCW durante todo el año. Guerra de seguridad de IA/LLM de alto nivel de la tribu, desarrollo de IA de seguridad reforzada con modelos de gran escala.
Interpretación de la Ley de Resiliencia de la Red: ¿Qué significa lograr la seguridad mediante el diseño del desarrollo de software?
Comprenda los requisitos de la Ley de Resiliencia de las Redes de la Unión Europea (CRA), a quiénes se aplica y cómo los equipos de ingeniería pueden prepararse mediante prácticas de diseño, prevención de vulnerabilidades y desarrollo de capacidades de los desarrolladores.
Factor impulsor 1: Criterios de éxito claros y medibles
El facilitador 1 es el preludio de nuestra serie de 10 partes sobre los impulsores del éxito, que muestra cómo vincular la codificación segura con los resultados empresariales, como la reducción del riesgo y el aumento de la velocidad de maduración de los planes a largo plazo.




%20(1).avif)
.avif)
