{"id":4240,"date":"2024-11-26T11:02:42","date_gmt":"2024-11-26T14:02:42","guid":{"rendered":"https:\/\/desenvolvedorpro.com.br\/?p=4240"},"modified":"2024-12-02T17:07:45","modified_gmt":"2024-12-02T20:07:45","slug":"cyber-security-substituindo-o-binaryformatter-no-net","status":"publish","type":"post","link":"https:\/\/desenvolvedorpro.com.br\/en\/cyber-security-substituindo-o-binaryformatter-no-net\/","title":{"rendered":"Cyber Security \u2013 Replacing BinaryFormatter in .NET"},"content":{"rendered":"<h2 class=\"wp-block-heading\">Cyber Security &#8211; BinaryFormatter: Um Risco \u00e0 Seguran\u00e7a<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">O c\u00f3digo fonte do .NET est\u00e1 em constante evolu\u00e7\u00e3o e sua equipe de desenvolvimento est\u00e1 atenta as quest\u00f5es de Cyber Security, no entanto, classes legadas como o BinaryFormatter continuam a apresentar vulnerabilidades explor\u00e1veis por atacantes. Nesta an\u00e1lise, discutiremos a vulnerabilidade cr\u00edtica associada ao BinaryFormatter registrada pelos c\u00f3digos <a href=\"https:\/\/www.cve.org\/CVERecord?id=CVE-2023-32737\" target=\"_blank\" rel=\"noreferrer noopener\"><strong>CVE-2023-32737<\/strong><\/a>, <a href=\"https:\/\/cwe.mitre.org\/data\/definitions\/502.html\" target=\"_blank\" rel=\"noreferrer noopener\"><strong>CWE-502<\/strong><\/a>, e <a href=\"https:\/\/learn.microsoft.com\/pt-br\/dotnet\/fundamentals\/code-analysis\/quality-rules\/ca2300\" target=\"_blank\" rel=\"noreferrer noopener\">CA2300<\/a> (voc\u00ea pode ler mais nos links), destacando o que s\u00e3o esses problemas, como eles impactam a seguran\u00e7a, e as melhores pr\u00e1ticas para mitig\u00e1-los.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">O que \u00e9 o BinaryFormatter?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">O BinaryFormatter \u00e9 uma classe do .NET Framework utilizada para serializar e desserializar objetos em formato bin\u00e1rio, facilitando o armazenamento ou a transfer\u00eancia de dados complexos. No entanto, devido \u00e0 forma como o BinaryFormatter trata dados durante a desserializa\u00e7\u00e3o, ele pode ser suscet\u00edvel a ataques de desserializa\u00e7\u00e3o inseguros, onde entradas maliciosas podem executar c\u00f3digos arbitr\u00e1rios e comprometer a seguran\u00e7a da aplica\u00e7\u00e3o.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Cyber Security &#8211; Entendendo os C\u00f3digos de Vulnerabilidade<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">CVE-2023-32737: C\u00f3digo de Vulnerabilidade Comum<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">O <strong>CVE-2023-32737<\/strong> \u00e9 um identificador espec\u00edfico para uma vulnerabilidade do tipo &#8220;desserializa\u00e7\u00e3o insegura&#8221; encontrada no BinaryFormatter. Ele indica que a manipula\u00e7\u00e3o de dados serializados possibilita a explora\u00e7\u00e3o da classe, permitindo que c\u00f3digos realizem a\u00e7\u00f5es inesperadas e potencialmente maliciosas no ambiente de execu\u00e7\u00e3o da aplica\u00e7\u00e3o.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">CWE-502: Categoria de Fraquezas<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">O <strong>CWE-502<\/strong> refere-se \u00e0 categoria &#8220;Desserializa\u00e7\u00e3o de Dados N\u00e3o Confi\u00e1veis&#8221;. Essa classifica\u00e7\u00e3o indica que uma vulnerabilidade ocorre quando dados maliciosos s\u00e3o desserializados, o que pode desencadear execu\u00e7\u00f5es de c\u00f3digo indesejadas. Em outras palavras, o processamento de dados de entrada potencialmente perigosos pode amea\u00e7ar a seguran\u00e7a do sistema e comprometer sua integridade.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">CA2300: An\u00e1lise de C\u00f3digo para Seguran\u00e7a<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">O CA2300 recomenda evitar o processamento direto de dados n\u00e3o confi\u00e1veis, garantindo maior seguran\u00e7a no sistema. Esse aviso serve para alertar desenvolvedores durante o processo de constru\u00e7\u00e3o do software, sinalizando o uso de pr\u00e1ticas inseguras, como a desserializa\u00e7\u00e3o direta de dados de fontes desconhecidas.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Impacto da Vulnerabilidade do BinaryFormatter<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Ao utilizar o BinaryFormatter, aplica\u00e7\u00f5es correm o risco de receber objetos bin\u00e1rios maliciosos que, durante a desserializa\u00e7\u00e3o, podem executar c\u00f3digo indesejado. Essa vulnerabilidade representa uma s\u00e9ria amea\u00e7a, pois permite a eleva\u00e7\u00e3o de privil\u00e9gios ou a execu\u00e7\u00e3o de comandos remotamente, comprometendo a integridade do sistema.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Por ser uma biblioteca amplamente utilizada e inclusa no .NET Framework (n\u00e3o confundir com .NET Core, onde o uso do BinaryFormatter j\u00e1 \u00e9 desaconselhado e possui suporte limitado), muitos sistemas podem ser alvos potenciais, especialmente os que interagem com dados de fontes externas.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Cyber Security &#8211; Quatro formas de mitigar o problema do BinaryFormatter<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">1. <strong>Substituindo o BinaryFormatter<\/strong><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>A Microsoft j\u00e1 recomenda que o BinaryFormatter seja evitado em novos projetos, incentivando o uso de alternativas mais seguras, como o <em>System.Text.Json<\/em>, <em>XmlSerializer<\/em>, ou <em>DataContractSerializer<\/em>.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">2. <strong>Verificar a Origem dos Dados<\/strong><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Garanta que dados serializados s\u00e3o provenientes de fontes confi\u00e1veis. Mesmo ao utilizar m\u00e9todos alternativos de serializa\u00e7\u00e3o, \u00e9 importante controlar e garantir a confiabilidade da origem dos dados.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">3. Cyber Security &#8211; <strong>Atualizar o .NET e Aplicar Patches de Seguran\u00e7a<\/strong><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>A Microsoft lan\u00e7a periodicamente atualiza\u00e7\u00f5es e patches para corrigir vulnerabilidades. Assegure-se de que o ambiente de desenvolvimento e os aplicativos estejam com as vers\u00f5es mais recentes do .NET Framework.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">4. <strong>Realizar An\u00e1lise Est\u00e1tica do C\u00f3digo<\/strong><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Ferramentas de an\u00e1lise est\u00e1tica, como o <strong>Code Analysis for .NET<\/strong> (que fornece o alerta CA2300), podem identificar o uso de BinaryFormatter e sugerir mudan\u00e7as antes da implanta\u00e7\u00e3o da aplica\u00e7\u00e3o.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Alternativas Seguras para Serializa\u00e7\u00e3o<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Como parte das melhores pr\u00e1ticas, os desenvolvedores podem considerar o uso de serializadores seguros e espec\u00edficos para os dados e cen\u00e1rios em quest\u00e3o. Algumas das alternativas recomendadas incluem:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>System.Text.Json<\/strong>: Uma alternativa leve e segura para a serializa\u00e7\u00e3o JSON.<\/li>\n\n\n\n<li><strong>DataContractSerializer<\/strong>: Indicado para cen\u00e1rios de comunica\u00e7\u00e3o entre servi\u00e7os, pois oferece mais controle sobre o que \u00e9 serializado.<\/li>\n\n\n\n<li><strong>Protobuf<\/strong>: Uma alternativa altamente eficiente e segura, principalmente para comunica\u00e7\u00e3o entre microservi\u00e7os.<\/li>\n\n\n\n<li><strong>NrbfDecoder<\/strong>: Uma alternativa voltada para a leitura e interpreta\u00e7\u00e3o de objetos bin\u00e1rios que mant\u00e9m compatibilidade com o BinaryFormatter. \u00c9 usada para decodificar o formato NRBF (<em>.NET Remoting Binary Format<\/em>), que permite manipular dados bin\u00e1rios sem os riscos de execu\u00e7\u00e3o de c\u00f3digo presentes no BinaryFormatter. Embora n\u00e3o seja uma substitui\u00e7\u00e3o direta, o NrbfDecoder pode ajudar a migrar dados legados ou analisar bin\u00e1rios com seguran\u00e7a. Saiba mais sobre o <a href=\"https:\/\/learn.microsoft.com\/pt-br\/dotnet\/standard\/serialization\/binaryformatter-migration-guide\/read-nrbf-payloads\" target=\"_blank\" rel=\"noreferrer noopener\">NrbfDecoder no site da Microsoft<\/a>.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Cyber Security &#8211; Substituindo o BinaryFormatter com o NrbfDecoder<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Imagine o cen\u00e1rio onde recebemos via API, dados formatados usando o BinaryFormatter, ou seja, n\u00e3o temos dom\u00ednio sobre o client mas apenas da API que deserializa esses dados tambem usando o BinaryFormatter.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Este caso categoriza o problema de seguran\u00e7a pois podemos receber um c\u00f3digo malicioso entre esses dados. Como podemos resolver nosso lado sem quebrar o contrato com os consumidores de nossas APIs?<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Uma op\u00e7\u00e3o \u00e9 usar o NrbfDecoder, uma <a href=\"https:\/\/www.nuget.org\/packages\/System.Formats.Nrbf\" target=\"_blank\" rel=\"noreferrer noopener\">biblioteca dispon\u00edvel no NuGet<\/a>. Na data de escrita deste artigo, ela ainda permanece em Release Candidate, embora a Microsoft j\u00e1 a considere em &#8220;produ\u00e7\u00e3o&#8221;. Isso ocorre porque sua API ainda deve passar por uma grande atualiza\u00e7\u00e3o.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Vamos explorar abaixo uma solu\u00e7\u00e3o de desserializa\u00e7\u00e3o com o NrbfDecoder mencionado anteriormente.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Considere que a classe abaixo foi serializada com BinaryFormatter e recebemos uma MemoryStream contendo esta classe.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>public class Employee\n{\n\tpublic int Id { get; set; }\n\tpublic List&lt;string&gt; Roles { get; set; }\n}\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Vamos ao codigo que desserializa:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>...\n\/\/ <strong>Valida se a MemoryStream pode ser desserializada<\/strong>\nif (NrbfDecoder.StartsWithPayloadHeader(memoryStream))\n{\n\tmemoryStream.Position = 0;\n\t\/\/ <strong>Decodifica a instancia de uma classe que n\u00e3o seja um Array ou tipo primitivo<\/strong>\n\tClassRecord decodedClass = NrbfDecoder.DecodeClassRecord(memoryStream);\n\t\n\t\/\/ <strong>Iterando sobre as propriedades para fazer bind pelo nome<\/strong>\n\tforeach (var memberName in decodedClass.MemberNames)\n\t{\n\t\tif (memberName.Equals(nameof(employee.Id))\n\t\t{\n\t\t\t\/\/ <strong>Lidando com tipos primitivos<\/strong>\n\t\t\temployee.Id = decodedClass.GetInt32(memberName);\n\t\t}\n\t\t\n\t\tif (memberName.Equals(nameof(employee.Roles))\n\t\t{\n\t\t\tvar complexDecoded = decodedClass.GetClassRecord(memberName);\n\t\t\t\n\t\t\t\/\/ <strong>Identifico o tipo para trata-lo corretamente<\/strong>\n\t\t\tif (complexDecoded.TypeName.FullName.Contains(\"List&#91;&#91;System.String]]\"))\n\t\t\t{\n\t\t\t\tvar listDecoded = complexDecoded.GetArrayRecord(\"_items\")\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t.GetArray(expectedArrayType: typeof(string));\n\t\t\t\t\n\t\t\t\tforeach (var item in listDecoded)\n\t\t\t\t{\n\t\t\t\t\t\/\/ Se for tipo primitivo\n\t\t\t\t\tif (item is not ClassRecord)\n\t\t\t\t\t{\n\t\t\t\t\t\temployee.Roles.Add(item);\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\t\/\/ <strong>Caso n\u00e3o seja tipo primitivo aqui seguimos decodificando as<\/strong>\n\t\t\t\t\t\/\/ <strong>classes ou arrays conforme fizemos anteriormente.<\/strong>\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\t\n\t\/\/ Ao final temos uma instancia da classe Employee desserializada\n\t\n<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Conclus\u00e3o<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Embora o BinaryFormatter seja uma ferramenta poderosa no .NET, ele se tornou uma fonte de risco devido \u00e0 sua suscetibilidade \u00e0 desserializa\u00e7\u00e3o insegura, dessa forma a vulnerabilidade identificada pelo CVE-2023-32737 e categorizada em CWE-502 destaca a necessidade de adotar pr\u00e1ticas seguras de serializa\u00e7\u00e3o e controle de dados. Por isso, a Microsoft e a comunidade .NET recomendam substituir o BinaryFormatter por m\u00e9todos de serializa\u00e7\u00e3o mais seguros, protegendo assim as aplica\u00e7\u00f5es e prevenindo que explora\u00e7\u00f5es comprometam a integridade do sistema.<\/p>","protected":false},"excerpt":{"rendered":"<p>Cyber Security &#8211; BinaryFormatter: Um Risco \u00e0 Seguran\u00e7a O c\u00f3digo fonte do .NET est\u00e1 em constante evolu\u00e7\u00e3o e sua equipe de desenvolvimento est\u00e1 atenta as quest\u00f5es de Cyber Security, no entanto, classes legadas como o BinaryFormatter continuam a apresentar vulnerabilidades explor\u00e1veis por atacantes. Nesta an\u00e1lise, discutiremos a vulnerabilidade cr\u00edtica associada ao BinaryFormatter registrada pelos c\u00f3digos [&hellip;]<\/p>\n","protected":false},"author":3,"featured_media":4189,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[365],"tags":[372,375,373,374,379,377,378],"class_list":["post-4240","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-solucoes-programacao","tag-net","tag-binaryformatter","tag-c","tag-cyber-security","tag-desenvolvimento","tag-programacao","tag-software"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.5 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Cyber Security - Substituindo o BinaryFormatter no .NET<\/title>\n<meta name=\"description\" content=\"Cyber Security - Substituindo o BinaryFormatter do .NET, saiba como! Neste artigo discutimos o problema e desenvolvemos uma solu\u00e7\u00e3o.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/desenvolvedorpro.com.br\/en\/cyber-security-substituindo-o-binaryformatter-no-net\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Cyber Security - Substituindo o BinaryFormatter no .NET\" \/>\n<meta property=\"og:description\" content=\"Cyber Security - Substituindo o BinaryFormatter do .NET, saiba como! Neste artigo discutimos o problema e desenvolvemos uma solu\u00e7\u00e3o.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/desenvolvedorpro.com.br\/en\/cyber-security-substituindo-o-binaryformatter-no-net\/\" \/>\n<meta property=\"og:site_name\" content=\"Desenvolvedor Pro\" \/>\n<meta property=\"article:published_time\" content=\"2024-11-26T14:02:42+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-12-02T20:07:45+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/desenvolvedorpro.com.br\/wp-content\/files\/desenvolvedorpro.com.br\/2024\/11\/vulnerabilidade-binaryformatter.webp\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"800\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/webp\" \/>\n<meta name=\"author\" content=\"Vinicius Sodr\u00e9\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Vinicius Sodr\u00e9\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"6 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/desenvolvedorpro.com.br\\\/cyber-security-substituindo-o-binaryformatter-no-net\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/desenvolvedorpro.com.br\\\/cyber-security-substituindo-o-binaryformatter-no-net\\\/\"},\"author\":{\"name\":\"Vinicius Sodr\u00e9\",\"@id\":\"https:\\\/\\\/desenvolvedorpro.com.br\\\/#\\\/schema\\\/person\\\/7d5e909b038bea106b6cead4c47a8efc\"},\"headline\":\"Cyber Security &#8211; Substituindo o BinaryFormatter no .NET\",\"datePublished\":\"2024-11-26T14:02:42+00:00\",\"dateModified\":\"2024-12-02T20:07:45+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/desenvolvedorpro.com.br\\\/cyber-security-substituindo-o-binaryformatter-no-net\\\/\"},\"wordCount\":1035,\"commentCount\":0,\"image\":{\"@id\":\"https:\\\/\\\/desenvolvedorpro.com.br\\\/cyber-security-substituindo-o-binaryformatter-no-net\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/desenvolvedorpro.com.br\\\/wp-content\\\/files\\\/desenvolvedorpro.com.br\\\/2024\\\/11\\\/vulnerabilidade-binaryformatter.webp\",\"keywords\":[\".NET\",\"BinaryFormatter\",\"C#\",\"Cyber Security\",\"Desenvolvimento\",\"Programa\u00e7\u00e3o\",\"Software\"],\"articleSection\":[\"Solu\u00e7\u00f5es\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/desenvolvedorpro.com.br\\\/cyber-security-substituindo-o-binaryformatter-no-net\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/desenvolvedorpro.com.br\\\/cyber-security-substituindo-o-binaryformatter-no-net\\\/\",\"url\":\"https:\\\/\\\/desenvolvedorpro.com.br\\\/cyber-security-substituindo-o-binaryformatter-no-net\\\/\",\"name\":\"Cyber Security - Substituindo o BinaryFormatter no .NET\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/desenvolvedorpro.com.br\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/desenvolvedorpro.com.br\\\/cyber-security-substituindo-o-binaryformatter-no-net\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/desenvolvedorpro.com.br\\\/cyber-security-substituindo-o-binaryformatter-no-net\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/desenvolvedorpro.com.br\\\/wp-content\\\/files\\\/desenvolvedorpro.com.br\\\/2024\\\/11\\\/vulnerabilidade-binaryformatter.webp\",\"datePublished\":\"2024-11-26T14:02:42+00:00\",\"dateModified\":\"2024-12-02T20:07:45+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/desenvolvedorpro.com.br\\\/#\\\/schema\\\/person\\\/7d5e909b038bea106b6cead4c47a8efc\"},\"description\":\"Cyber Security - Substituindo o BinaryFormatter do .NET, saiba como! Neste artigo discutimos o problema e desenvolvemos uma solu\u00e7\u00e3o.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/desenvolvedorpro.com.br\\\/cyber-security-substituindo-o-binaryformatter-no-net\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/desenvolvedorpro.com.br\\\/cyber-security-substituindo-o-binaryformatter-no-net\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/desenvolvedorpro.com.br\\\/cyber-security-substituindo-o-binaryformatter-no-net\\\/#primaryimage\",\"url\":\"https:\\\/\\\/desenvolvedorpro.com.br\\\/wp-content\\\/files\\\/desenvolvedorpro.com.br\\\/2024\\\/11\\\/vulnerabilidade-binaryformatter.webp\",\"contentUrl\":\"https:\\\/\\\/desenvolvedorpro.com.br\\\/wp-content\\\/files\\\/desenvolvedorpro.com.br\\\/2024\\\/11\\\/vulnerabilidade-binaryformatter.webp\",\"width\":1200,\"height\":800,\"caption\":\"Cyber Security -binaryformatter - .net\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/desenvolvedorpro.com.br\\\/cyber-security-substituindo-o-binaryformatter-no-net\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/desenvolvedorpro.com.br\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Cyber Security &#8211; Substituindo o BinaryFormatter no .NET\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/desenvolvedorpro.com.br\\\/#website\",\"url\":\"https:\\\/\\\/desenvolvedorpro.com.br\\\/\",\"name\":\"Desenvolvedor Pro\",\"description\":\"Solu\u00e7\u00f5es de Programa\u00e7\u00e3o, Dicas de C\u00f3digo e Tend\u00eancias em Tecnologia\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/desenvolvedorpro.com.br\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/desenvolvedorpro.com.br\\\/#\\\/schema\\\/person\\\/7d5e909b038bea106b6cead4c47a8efc\",\"name\":\"Vinicius Sodr\u00e9\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/5587232d2ab922418dcec0e2cb7795345d146d7aba284caed51a038762a8c5b5?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/5587232d2ab922418dcec0e2cb7795345d146d7aba284caed51a038762a8c5b5?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/5587232d2ab922418dcec0e2cb7795345d146d7aba284caed51a038762a8c5b5?s=96&d=mm&r=g\",\"caption\":\"Vinicius Sodr\u00e9\"},\"description\":\"Formado em Ci\u00eancia da Computa\u00e7\u00e3o pela Unicarioca, desenvolvedor de software com 15 anos de experi\u00eancia em grandes empresas nacionais e multinacionais. Vinicius est\u00e1 \u00e0 frente deste blog, feito de desenvolvedor para desenvolvedores de iniciantes a experientes.\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Cyber Security - Substituindo o BinaryFormatter no .NET","description":"Cyber Security - Substituindo o BinaryFormatter do .NET, saiba como! Neste artigo discutimos o problema e desenvolvemos uma solu\u00e7\u00e3o.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/desenvolvedorpro.com.br\/en\/cyber-security-substituindo-o-binaryformatter-no-net\/","og_locale":"en_US","og_type":"article","og_title":"Cyber Security - Substituindo o BinaryFormatter no .NET","og_description":"Cyber Security - Substituindo o BinaryFormatter do .NET, saiba como! Neste artigo discutimos o problema e desenvolvemos uma solu\u00e7\u00e3o.","og_url":"https:\/\/desenvolvedorpro.com.br\/en\/cyber-security-substituindo-o-binaryformatter-no-net\/","og_site_name":"Desenvolvedor Pro","article_published_time":"2024-11-26T14:02:42+00:00","article_modified_time":"2024-12-02T20:07:45+00:00","og_image":[{"width":1200,"height":800,"url":"https:\/\/desenvolvedorpro.com.br\/wp-content\/files\/desenvolvedorpro.com.br\/2024\/11\/vulnerabilidade-binaryformatter.webp","type":"image\/webp"}],"author":"Vinicius Sodr\u00e9","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Vinicius Sodr\u00e9","Est. reading time":"6 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/desenvolvedorpro.com.br\/cyber-security-substituindo-o-binaryformatter-no-net\/#article","isPartOf":{"@id":"https:\/\/desenvolvedorpro.com.br\/cyber-security-substituindo-o-binaryformatter-no-net\/"},"author":{"name":"Vinicius Sodr\u00e9","@id":"https:\/\/desenvolvedorpro.com.br\/#\/schema\/person\/7d5e909b038bea106b6cead4c47a8efc"},"headline":"Cyber Security &#8211; Substituindo o BinaryFormatter no .NET","datePublished":"2024-11-26T14:02:42+00:00","dateModified":"2024-12-02T20:07:45+00:00","mainEntityOfPage":{"@id":"https:\/\/desenvolvedorpro.com.br\/cyber-security-substituindo-o-binaryformatter-no-net\/"},"wordCount":1035,"commentCount":0,"image":{"@id":"https:\/\/desenvolvedorpro.com.br\/cyber-security-substituindo-o-binaryformatter-no-net\/#primaryimage"},"thumbnailUrl":"https:\/\/desenvolvedorpro.com.br\/wp-content\/files\/desenvolvedorpro.com.br\/2024\/11\/vulnerabilidade-binaryformatter.webp","keywords":[".NET","BinaryFormatter","C#","Cyber Security","Desenvolvimento","Programa\u00e7\u00e3o","Software"],"articleSection":["Solu\u00e7\u00f5es"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/desenvolvedorpro.com.br\/cyber-security-substituindo-o-binaryformatter-no-net\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/desenvolvedorpro.com.br\/cyber-security-substituindo-o-binaryformatter-no-net\/","url":"https:\/\/desenvolvedorpro.com.br\/cyber-security-substituindo-o-binaryformatter-no-net\/","name":"Cyber Security - Substituindo o BinaryFormatter no .NET","isPartOf":{"@id":"https:\/\/desenvolvedorpro.com.br\/#website"},"primaryImageOfPage":{"@id":"https:\/\/desenvolvedorpro.com.br\/cyber-security-substituindo-o-binaryformatter-no-net\/#primaryimage"},"image":{"@id":"https:\/\/desenvolvedorpro.com.br\/cyber-security-substituindo-o-binaryformatter-no-net\/#primaryimage"},"thumbnailUrl":"https:\/\/desenvolvedorpro.com.br\/wp-content\/files\/desenvolvedorpro.com.br\/2024\/11\/vulnerabilidade-binaryformatter.webp","datePublished":"2024-11-26T14:02:42+00:00","dateModified":"2024-12-02T20:07:45+00:00","author":{"@id":"https:\/\/desenvolvedorpro.com.br\/#\/schema\/person\/7d5e909b038bea106b6cead4c47a8efc"},"description":"Cyber Security - Substituindo o BinaryFormatter do .NET, saiba como! Neste artigo discutimos o problema e desenvolvemos uma solu\u00e7\u00e3o.","breadcrumb":{"@id":"https:\/\/desenvolvedorpro.com.br\/cyber-security-substituindo-o-binaryformatter-no-net\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/desenvolvedorpro.com.br\/cyber-security-substituindo-o-binaryformatter-no-net\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/desenvolvedorpro.com.br\/cyber-security-substituindo-o-binaryformatter-no-net\/#primaryimage","url":"https:\/\/desenvolvedorpro.com.br\/wp-content\/files\/desenvolvedorpro.com.br\/2024\/11\/vulnerabilidade-binaryformatter.webp","contentUrl":"https:\/\/desenvolvedorpro.com.br\/wp-content\/files\/desenvolvedorpro.com.br\/2024\/11\/vulnerabilidade-binaryformatter.webp","width":1200,"height":800,"caption":"Cyber Security -binaryformatter - .net"},{"@type":"BreadcrumbList","@id":"https:\/\/desenvolvedorpro.com.br\/cyber-security-substituindo-o-binaryformatter-no-net\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/desenvolvedorpro.com.br\/"},{"@type":"ListItem","position":2,"name":"Cyber Security &#8211; Substituindo o BinaryFormatter no .NET"}]},{"@type":"WebSite","@id":"https:\/\/desenvolvedorpro.com.br\/#website","url":"https:\/\/desenvolvedorpro.com.br\/","name":"Desenvolvedor Pro","description":"Solu\u00e7\u00f5es de Programa\u00e7\u00e3o, Dicas de C\u00f3digo e Tend\u00eancias em Tecnologia","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/desenvolvedorpro.com.br\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/desenvolvedorpro.com.br\/#\/schema\/person\/7d5e909b038bea106b6cead4c47a8efc","name":"Vinicius Sodr\u00e9","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/5587232d2ab922418dcec0e2cb7795345d146d7aba284caed51a038762a8c5b5?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/5587232d2ab922418dcec0e2cb7795345d146d7aba284caed51a038762a8c5b5?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/5587232d2ab922418dcec0e2cb7795345d146d7aba284caed51a038762a8c5b5?s=96&d=mm&r=g","caption":"Vinicius Sodr\u00e9"},"description":"Formado em Ci\u00eancia da Computa\u00e7\u00e3o pela Unicarioca, desenvolvedor de software com 15 anos de experi\u00eancia em grandes empresas nacionais e multinacionais. Vinicius est\u00e1 \u00e0 frente deste blog, feito de desenvolvedor para desenvolvedores de iniciantes a experientes."}]}},"_links":{"self":[{"href":"https:\/\/desenvolvedorpro.com.br\/en\/wp-json\/wp\/v2\/posts\/4240","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/desenvolvedorpro.com.br\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/desenvolvedorpro.com.br\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/desenvolvedorpro.com.br\/en\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/desenvolvedorpro.com.br\/en\/wp-json\/wp\/v2\/comments?post=4240"}],"version-history":[{"count":2,"href":"https:\/\/desenvolvedorpro.com.br\/en\/wp-json\/wp\/v2\/posts\/4240\/revisions"}],"predecessor-version":[{"id":4310,"href":"https:\/\/desenvolvedorpro.com.br\/en\/wp-json\/wp\/v2\/posts\/4240\/revisions\/4310"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/desenvolvedorpro.com.br\/en\/wp-json\/wp\/v2\/media\/4189"}],"wp:attachment":[{"href":"https:\/\/desenvolvedorpro.com.br\/en\/wp-json\/wp\/v2\/media?parent=4240"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/desenvolvedorpro.com.br\/en\/wp-json\/wp\/v2\/categories?post=4240"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/desenvolvedorpro.com.br\/en\/wp-json\/wp\/v2\/tags?post=4240"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}